gpt4 book ai didi

node.js - 图片上传: Node Multer 'LIMIT_UNEXPECTED_FILE' error

转载 作者:行者123 更新时间:2023-12-04 17:48:52 24 4
gpt4 key购买 nike

我正在尝试使用 multer 处理前端到后端的配置文件 photp 上传,但不断收到此错误:

{ [Error: Unexpected field]
code: 'LIMIT_UNEXPECTED_FILE',
field: 'file',
storageErrors: [] }

下面是我的代码:

注册.ejs:

<div class="form-group">
<input class="form-control" type="file" name="image" id="image">
</div>

ajax.js:

$('form').submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
// var img = cropper.getCroppedCanvas().toDataURL();
// formData.append('img',img);
$.ajax({
url: '/register',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function () {
console.log('Upload success');
},
error: function () {
console.log('Upload error');
}
});
});

应用程序.js:

var multer      = require('multer');
var cloudinary = require('cloudinary');
...
// MULTER
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./public/uploads");
},
filename: function(req, file, callback) {
callback(null, Date.now() + file.originalname);
}
});

var upload = multer({ storage : storage}).single("image");

app.post("/register", function(req, res) {
upload(req, res, function(err){
if(err) {
console.log(err);
return res.send("Error uploading file.");
}

res.send("Upload success");
});
});

当我尝试获取 req.body.img 或 req.file 时,我也得到了一个 undefined object 。也许表单数据没有正确填充?谁能给我一些启发?

最佳答案

上面写着 multer docs你应该通过 enctype="multipart/form-data"属性给你的 <form>元素。我不太熟悉 ajax , 但我认为你可能必须设置 contentType:ajax.js"multipart/form-data" .

我也有类似的错误,但这是由不匹配的文本字段键引起的。

关于node.js - 图片上传: Node Multer 'LIMIT_UNEXPECTED_FILE' error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675819/

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