带有文件和文本输入的Ajax表单

时间:2012-06-18 16:26:59

标签: ajax upload form-data

我正在尝试创建一个发送文件和文本输入的ajax上传表单。 我已设法使用以下代码发送文件:

var $form = $('#form');
var formData = new FormData();

formData.append('file', $('#file')[0].files[0]);

$.ajax({
    url: 'upload.php',
    type: 'POST',
    dataType: 'html',
    data: formData,
    processData: false,
    contentType: false
});

但是,我还需要发送文本输入,所以我尝试将整个表单传递给FormData对象:

var $form = $('#form');
var formData = new FormData($form);

$.ajax({
    url: 'upload.php',
    type: 'POST',
    dataType: 'html',
    data: formData,
    processData: false,
    contentType: false
});

但是后来我在'upload.php'中得不到任何东西

如何将文本和文件输入一起发送?

谢谢!

1 个答案:

答案 0 :(得分:0)

经过大量搜索后找到了这个答案(Previous Answer),并在我的应用程序中运行良好:

$("form#data").submit(function(){

var fd = new fd($(this)[0]);

var request = jQuery.ajax({
  url: gurl,
  type: 'POST',
  cache: false,
  contentType: false,
  processData: false,
  data: fd
  });

我还会检查你的AJAX调用,dataType:'html'可能会导致错误。