在不提交表单的情况下将文件数据发送到ajax

时间:2018-11-08 09:29:24

标签: php jquery ajax

我写了以下代码,使用不带表单标签的Ajax上传图像。我的基本要求是,单击文件输入后,图像的路径应保存在SESSION中,一旦确认会话已销毁,图像就保存到文件夹中。

<input id="file-input" name="file-input[]" multiple accept=".png, .PNG, .jpg, .JPG, .jpeg, .JPEG, .PDF, .pdf" type="file" />
$(document).ready(function() {
  $('input[type=file]').change(function() {
    var formData = new FormData();
    var files = this.files;
    for (var i = 0; i < this.files.length; i++) {
      formData.append('file', $('#file-input')[0].files[0]);
    }

    $.ajax({
      type: "POST",
      url: "ajax.php?type=uploadImgSession", // 
      data: formData,
      processData: false,
      contentType: false,
      success: function(msg) {
        alert(msg);
      },
      error: function() {
        alert("failure");
      }
    });
  })
});

我的问题是formData每次都是空白。我该如何纠正?

1 个答案:

答案 0 :(得分:0)

在尝试使用Ajax上传文件时,可以使用jquery - $(form).ajaxSubmit() Ref link