gpt4 book ai didi

javascript - 使用ajax发送用于文件上传的表单数据

转载 作者:行者123 更新时间:2023-11-30 21:05:55 25 4
gpt4 key购买 nike

我正在尝试通过使用带有 ajax 的表单数据来上传图像。虽然下面的行似乎工作正常并将图像保存在我的本地机器上。

<form ref='uploadForm' id='uploadForm' action='/tab10/uploadImage' method='post' encType="multipart/form-data">
<input type="file" class="btn btn-default" name="file" />
<input type='submit' class="btn btn-default" value='Broadcast Image' />
</form>

但是当我尝试使用 ajax 进行调用而不是将操作指定为表单属性时,事情似乎并没有正常工作。下面是我用来使用 ajax 进行 post API 调用的代码。

HTML

<form ref='uploadForm' id='uploadForm' encType="multipart/form-data">

查询

$("form#uploadForm").submit(function (event) {
//disable the default form submission
event.preventDefault();
var formData = $(this).serialize();
console.log(formData);
$.ajax({
url: '/tab10/uploadImage',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function () {
alert('Form Submitted!');
},
error: function(){
alert("error in ajax form submission");
}
});
return false;
});

下面是我用来保存图像的代码。

exports.uploadImage = function(req, resp) {
var res = {};
let file = req.files.file;
file.mv('./images/image', function(err) {
if (err) {
res.status = 500;
res.message = err;
// return res.status(500).send(err);
return resp.send(res);
}
res.status = 200;
res.message = 'File uploaded!';
return resp.send(res);
});
};

当我在我的 uploadimage 函数中检查请求数据时,似乎在请求中,在后一种情况下没有发送名为“files”的参数。

最佳答案

我认为你必须创建 FormData , 在可以将文件附加到 formData 之后,将 ID 添加到输入 <input type="file" class="btn btn-default" name="file" id="uploadFile"/>

 $("form#uploadForm").submit(function (event) {
//disable the default form submission
event.preventDefault();
var formData = new FormData();
formData.append('file',$('#uploadFile')[0].files[0]);
$.ajax({
url: '/tab10/uploadImage',
type: 'POST',
data: formData,
contentType: false,
processData: false,
success: function () {
alert('Form Submitted!');
},
error: function(){
alert("error in ajax form submission");
}
});

});

关于javascript - 使用ajax发送用于文件上传的表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46603256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com