我使用XMLHttpRequest时,可以通过FormData
正确地上传文件。但是,当我切换到jQuery.ajax
时,我的代码出现了问题。
这是原始的正常工作代码:
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);
}
这是我的不成功的 jQuery.ajax
尝试:
function uploadFile(blobFile, fileName) {
var fd = new FormData();
fd.append("fileToUpload", blobFile);
var xm = $.ajax({
url: "upload.php",
type: "POST",
data: fd,
});
}
我做错了什么?如何使用 AJAX 正确上传文件?
Blob
或File
对象,例如对于<input type="file" id="filechooser">
,它是document.getElementById('filechooser').files[0]
(前提是用户已经选择了文件)。 (在 jQuery 中,使用$('#filechooser')[0].files[0]
) - Rob Wfd.append('field_name', 'string_field_value');
- 参见 https://developer.mozilla.org/zh-CN/docs/Web/API/FormData :在表单数据中添加一个字段(field),并为其设置字符串值(string_field_value)。 - Rob W