Exigences du projet : comment obtenir les informations sur l'image téléchargée (chemin d'enregistrement temporaire, nom, taille) via js, puis les transmettre au backend via ajax
Le sujet utilise jquery pour recevoir
<input name="c_pic" id="c_pic" type="file" class="file">
La méthode utilisée est :
var input = document.getElementById("c_pic"); input.addEventListener('change',readFile,false); function readFile(){ var file = this.files[0]; }
Le sujet souhaite utiliser la méthode post ajax pour transmettre les informations pertinentes de l'image téléchargée au backend. Le fichier reçu est un fichier objet. Comment puis-je le convertir dans un format de données pouvant être transmis par courrier ?
Quand j'ai vu ce sujet, j'ai pensé que ce n'était pas facile. J'ai directement passé le fichier via JSON.stringify(file) (Remarque : stringify() est utilisé pour analyser une chaîne à partir d'un objet. Le code est le suivant). :
var input = document.getElementById("c_pic"); input.addEventListener('change',readFile,false); function readFile(){ var file = this.files[0]; var file_json = JSON.stringify(file); console.log(file_json); //打印出来是: {} $.post('',file_json); }
J'ai découvert que ce qui était imprimé était un objet vide : {} ; si vous en savez quelque chose, faites-le-moi savoir, je vous en serais reconnaissant !
J'ai donc changé d'avis et utilisé le plug-in uploadfile ou le webuploader de Baidu. JQuery File Upload est un composant de téléchargement d'images Jquery qui prend en charge le téléchargement, l'annulation, la suppression de plusieurs fichiers, l'aperçu miniature avant le téléchargement, l'affichage de la liste de la taille de l'image, et prise en charge du téléchargement. Affichage de la barre de progression ; prend en charge le développement côté serveur dans divers langages dynamiques.
S'il prend en charge HTML5, vous pouvez utiliser FormData Ajax pour le téléchargement.
Le contenu ci-dessus est la méthode partagée par l'éditeur pour obtenir les informations sur l'image téléchargée (chemin d'enregistrement temporaire, nom, taille) via js, puis les transmettre au backend via ajax. J'espère que cela sera utile à tout le monde.