我一直试图通过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));
});
答案 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节点时),所以请不要这样做。