gpt4 book ai didi

javascript - 使用 express.js 和 multer 使用 ajax 进行简单的多部分文件上传

转载 作者:行者123 更新时间:2023-11-29 10:05:04 25 4
gpt4 key购买 nike

我没有收到任何错误。文件夹 uploadschmod 777

后端:

var multer  = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
});

var upload = multer({ storage: storage,
limits: { fileSize: '50mb' }}).single('photo');


router.post('/bild',function(req,res){
console.log("REQ",req); //file is there in the body
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
});

前端:

$("#formular").submit(function (e) {
e.preventDefault();
var form = $(this)[0];
var formData = new FormData(form);
console.log(formData)
$.ajax({
type: "POST",
url: "/users/bild",
data: formData,
processData: false,
"content-type": "application/x-www-form-urlencoded",
success: function(r){
console.log("result",r)
},
error: function (e) {
console.log("some error", e);
}
});

});

但是没有文件上传。我还尝试在发送之前获取文件并将其附加到 formData - 同样的效果。

最佳答案

对于前端,contentType 必须设置为 false 才能在 jQuery.ajax 中使用 formdata 对象,还有 $(this)[0] === this

$("#formular").submit(function (e) {
e.preventDefault();
var formData = new FormData(this);
console.log(formData)
$.ajax({
type: "POST",
url: "/users/bild",
data: formData,
processData: false,
contentType: false,
success: function(r){
console.log("result",r)
},
error: function (e) {
console.log("some error", e);
}
});

});

关于javascript - 使用 express.js 和 multer 使用 ajax 进行简单的多部分文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131569/

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