Jquery 使用ajaxForm插件提交FormData

Jquery 使用ajaxForm插件提交FormData,jquery,forms,ajaxform,form-data,Jquery,Forms,Ajaxform,Form Data,如何使用ajaxForm插件将FormData对象放入表单并提交? 我正在尝试做以下事情: var fd = new FormData(); fd.append('photo', file); var form = $("<form method='POST' action='url.php' enctype='multipart/form-data'></form>"); 然后提交表格。 因此,在url.php中,我可以通过$_FILES['photo']获取文件 您

如何使用ajaxForm插件将FormData对象放入表单并提交? 我正在尝试做以下事情:

var fd = new FormData();
fd.append('photo', file);
var form = $("<form method='POST' action='url.php' enctype='multipart/form-data'></form>");
然后提交表格。
因此,在url.php中,我可以通过$_FILES['photo']获取文件

您可以像普通ajax帖子一样直接发送数据


我已经测试过了,效果很好。

这就是我的工作原理

var fd = new FormData(this);
fd.append('upload', file);

$(this).ajaxSubmit({
    formData: fd,
    ...
});

参见Hm我知道如何使用纯ajax发布FormData,但在这种情况下,我需要通过ajaxForm发布它,因为我需要回调函数,如beforeSend、uploadProgress和complete函数,这些函数只能通过ajaxForm实现。我以前也尝试过你的方法,但它总是返回“Uncaught TypeError:非法调用”,这就是为什么我考虑是否有另一种方法来解决这个问题?这是我当前的代码:
$(“#上传_文件”).change(function(){var filelist=$(this.context.files);for(var i=0;i
我试过用普通的ajax post正常工作,我可以成功获取文件,但不能用ajaxForm。我发现了问题,我只是把ajaxForm中的“数据”和“表单数据”弄乱了,在我将“数据”改成“表单数据”后,它正常工作
form.ajaxForm({
  data: { data: fd }, 
  beforeSubmit:function() { 

    } 
  beforeSend: function(e) {},
  uploadProgress: function(event, position, total, percentComplete) {},
  complete: function(data) {}
});
var fd = new FormData(this);
fd.append('upload', file);

$(this).ajaxSubmit({
    formData: fd,
    ...
});