使用PHP上传基本的jQuery Ajax文件

时间:2018-04-13 23:12:35

标签: php jquery ajax forms submit

我一直试图通过ajax表单上传基本文件但没有成功。我正在寻找最基本的基础知识,而我通过搜索找到的任何工作都没有。

我一直在搞乱这个问题大约8个小时,并尝试了至少十几种不同的方法,但却未能成功上传任何内容。

我尽可能地将我的代码缩小到最基本的必需品。

我的JavaScript是这样的:

Redis.current.publish 'validation_update', 'import_invalid_address'

用以下方式调用:

function uploadFile(param) { //Upload File
          $.ajax({
            url: "modules/upload/upload.php",
            type: "post",
            data: new FormData($(param)[0]),
              cache: false,
              contentType: false,
              processData: false,
            success: function (data) {
                console.log(data);
            }
          });
}

和PHP:

$(".app-canvas").on('change', ".fileUpload", function () {
uploadFile($(this));
});

1 个答案:

答案 0 :(得分:0)

FormData将HTMLFormElement作为其构造函数的参数,您传递的是文件输入。要从表单元素添加文件,您必须使用append

$(".app-canvas").on('change', ".fileUpload", uploadFile);

function uploadFile() { //Upload File
      var fd = new FormData();
      fd.append('driver_licence_image', this.files[0]);
      $.ajax({
        url: "modules/upload/upload.php",
        type: "post",
        data: fd,
        cache: false,
        contentType: false,
        processData: false,
        success: function (data) {
          console.log(data);
        }
      });
}

P.S。 $(param)[0]相当于param(当param是dom节点时),所以请不要这样做。