使用multer软件包的js应用程序。代码如下所示:
var multer = require('multer')
var upload = multer({ dest: 'avatars' })
router.post('/users/me/avatar', upload.single('avatar'), (req, res) => {
res.send()
})我正在尝试使用SoapUi测试这个端点。

但是,我从节点获得了下面的响应。
Distributors\Node\task-manager\node_modules\multer\index.js:40:19):
MulterError: wrappedFileFilter的意外字段(C:\Users\pdatta\OneDrive - American )(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\multer\lib\make-middleware.js:114:7) at Busboy.emit (events.js:311:20) at Busboy.emit (C:\Users\pdatta\OneDrive )-美国轮胎Distributors\Node\task-manager\node_modules\busboy\lib\main.js:38:33) at PartStream.(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\busboy\lib\types\multipart.js:213:13) at PartStream.emit (events.js:311:20) at HeaderParser.(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:51:16) at HeaderParser.emit (events.js:311:20) at HeaderParser._finish (C:\Users\pdatta\OneDrive )-美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:68:8) at SBMH。(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:40:12) at SBMH.emit (events.js:311:20) at SBMH._sbmh_feed (C:\Users\pdatta\OneDrive - American Tire Distributors\Node\task-manager\node_modules\streamsearch\lib\sbmh.js:95:16) at SBMH.push )美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:46:19) at Dicer._oninfo (C:\Users\pdatta\OneDrive -美式轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:197:25) at SBMH )(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:127:10)
请帮我解决这个问题。该文件未保存在目标目录中。
如果你需要其他信息,请告诉我。
发布于 2020-07-08 11:17:59
尝试将此作为中间件
const multer = require('multer')
const dirStorage = __dirname +'/avatas';
const storageOption = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, req.dirStorageUser);
},
filename: function (req, file, cb) {
cb(null, `new_avatar.png`);
}
});
const upload = multer({
storage: storageOption
}).single('upload');
router.post('/users/me/avatar', uploadMiddleware, (req, res) => {
res.send("");
})
function uploadMiddleware(req, res, next) {
if (!fs.existsSync(dirStorage)) {
fs.mkdirSync(dirStorage);
}
upload(req, res, function (err) {
let errorMsg;
if (err instanceof multer.MulterError) {
errorMsg = 'Was not possible save image';
} else if (err) {
errorMsg = 'Something was wrong on save image';
}
if (errorMsg) {
return res.send(errorMsg);
}
return res.send("success");
//next("route");
});
}
https://stackoverflow.com/questions/62792426
复制相似问题