Comment faire pour télécharger un fichier à l'aide de jQuery.ajax et FormData
Lorsque j'utilise XMLHttpRequest, un fichier est correctement téléchargé à l'aide de FormData
. Cependant, lorsque je passe à jQuery.ajax
, mon code pauses.
C'est le travail le code d'origine:
function uploadFile(blobFile, fileName) {
var fd = new FormData();
fd.append("fileToUpload", blobFile);
var xhr = new XMLHttpRequest();
xhr.open("POST", "upload.php", true);
xhr.send(fd);
}
Voici mon échec jQuery.ajax
tentative:
function uploadFile(blobFile, fileName) {
var fd = new FormData();
fd.append("fileToUpload", blobFile);
var xm = $.ajax({
url: "upload.php",
type: "POST",
data: fd,
});
}
Ce que je fais mal? Comment puis-je obtenir le fichier à charger correctement, à l'aide d'AJAX?
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter
processData:false,contentType:false
à votre méthode, de sorte que jQuery ne permet pas de modifier les en-têtes ou des données (les pauses de votre code actuel).blobFile
? C'est une entrée.val()?Blob
ouFile
de l'objet, par exemple pour<input type="file" id="filechooser">
il estdocument.getElementById('filechooser').files[0]
(à condition que l'utilisateur a sélectionné un fichier). (en jQuery,$('#filechooser')[0].files[0]
)File
à l'aide de laBlob
constructeur. Par exemple, si vous souhaitez forcer leimage/jpeg
type MIME du fichier dans l'exemple, l'utilisationblobFile = new Blob([blobFile],{type:'image/jpeg'});
avantfd.append
.