2

我正在尝试创建一个发送文件和文本输入的 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'中什么也没得到

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

谢谢!

4

1 回答 1

0

经过大量搜索后找到了这个答案(上一个答案),并且在我的应用程序中效果很好:

$("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' 可能会导致错误。

于 2013-02-21T18:52:00.377 回答