这在直接提交表单时有效。也许我没有正确地将“表单”对象传递给 FormData。 Laravel 说"file"没有被传递,当我 console.log(formData) 时,我看到一个包含 proto 属性的对象,但据我所知,我没有任何字段
HTML
<form enctype="multipart/form-data" accept-charset="utf-8" method="POST" action="/file">
<input id="file" type="file" name="file">
<button type="submit">Upload</button>
</form>
JS
$('.file-upload-form').submit(function (e) {
e.preventDefault();
submitUploadFileForm($(this)); //also tried just passing this without wrapper
});
function submitUploadFileForm(form){
console.log(form);
var formData = new FormData(form); //Needed for passing file
console.log(formData);
$.ajax({
type: 'post',
url: '/file',
data: formData,
success: function () {
alert('done');
},
processData: false,
contentType: false
});
}
最佳答案
FormData
接受 form
DOMElement,而不是 jQuery 对象。您需要调用 submitUploadFileForm()
,只需将 this
引用传递给 form
:
submitUploadFileForm(this);
关于javascript - 使用 FormData 上传 JQuery/AJAX 文件,文件未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439282/