Javascript 如何为Ajax上传文件

Javascript 如何为Ajax上传文件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图通过ajax提交一个表单,其中包含一些图像。下面的代码返回一个对象(在控制台.form),“FormData”,但是如何使用和/或检索它,以及它是否正确 $("#form_galeria").unbind('submit').bind('submit', function(e) { e.preventDefault(); var url = 'salvarGaleria.do'; var form; form = new FormData();

我试图通过ajax提交一个表单,其中包含一些图像。下面的代码返回一个对象(在
控制台.form
),“
FormData
”,但是如何使用和/或检索它,以及它是否正确

$("#form_galeria").unbind('submit').bind('submit', function(e) {
    e.preventDefault();
    var url = 'salvarGaleria.do';

    var form;
    form = new FormData();

    form.append('fileUpload', e.target.files);
    console.log(form);

    $.ajax({
        type: "POST",
        url: url,
        data: $("#form_galeria").serialize(),
        processData: false,
        contentType: false,
        success: function(result) {
            console.log(result);
        },
        error: function(err) {
            console.log(err.status + ' - ' + err.statusText);
        }
    });

    $('#multiplas').modal('hide');
    return false;
});

将ajax
data
选项设置为FormData对象。如果希望将字段值与文件上载一起发送,则还需要向FormData对象添加任何字段值。此外,您还必须附加每个个人文件。您不能只附加
e.target.files
集合

for(var i=0; i<e.target.files.length; i++){
    form.append("fileUpload[]",e.target.files[i]);
}
//or if you are only doing a single file
//form.append("fileUpload",e.target.files[0]);

form.append("someField",jQuery("#someField").val());
form.append("someOtherField",jQuery("#someOtherField").val());

$.ajax({
    type: "POST",
    url: url,
    data: form,
    processData: false,
    contentType: false,
    success: function(result){
      console.log(result);
    },
    error: function(err){
      console.log(err.status + ' - ' + err.statusText);
    }
});
(变量i=0;i)的