Multer没有保存文件,我看不到任何日志...文件夹为空,没有任何文件。
图像数据实际上被发送到服务器,因为它的控制台已记录:Screenshot of req.files from log
我做错了什么?请帮我找到
const express = require('express');
const router = express.Router();
const path = require('path');
const multer = require('multer');
const storage = multer.diskStorage({
destination: (req, file, cb) => {
console.log('destination') // can't see this log
cb(null, './uploads/');
},
filename: (req, file, cb) => {
console.log('filename') // can't see this log
const ext = file.mimetype.split("/")[1];
cb(null, Date.now() + path.extname(file.originalname));
}
});
const uploadImage = multer({
storage,
limits: { fieldSize: 1024 * 1024 },
fileFilter: (req, file, cb) => {
console.log('log!') // can't see this log
const ext = path.extname(file.originalname);
if (ext !== '.jpg' && ext !== '.jpeg' && ext !== '.png') {
console.log('not log!') // can't see this log
const err = new Error('Extention');
err.code = 'EXTENTION';
return cb(err);
}
console.log('log!') // can't see this log
cb(null, true);
}
}).single('photo');
router.post('/image', async (req, res) => {
console.log(req.files) // can see this log
uploadImage(req, res, err => {
console.log('upload') // can see this log
let error = '';
if (err) {
console.log(err)
if (err.code === 'LIMIT_FILE_SIZE') {
error = 'Max 500kb!';
}
if (err.code === 'EXTENTION') {
error = 'Only jpg and png!';
}
}
res.json({
ok: !error,
error
});
})
});发布于 2021-09-12 11:10:10
Multer最后给出了一个错误,所以问题解决了.问题是这些字段的名称是不同的:
服务器:.single('pic');
在对服务器的请求中:formData.append('pic', file);
发布于 2021-09-12 06:22:34
代码对我来说似乎工作得很好,但我只需要手动创建uploads目录。
我使用postman进行了测试,图片出现在我的上传目录中。
# Console Output
SERVER RUNNING ON 3000
undefined
log!
log!
destination
filename
uploadhttps://stackoverflow.com/questions/69147372
复制相似问题