我正在使用multer作为express app
的中间件来在服务器上上传文件,但是它似乎无法正常工作,我通过邮递员或curl发送的每个发帖请求中都有一个空文件数组。
我已经在发送请求时将标头设置为“内容类型”:'multipart/form-data'
app.js
lines:12-43
const app = express();
const fileStorage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'images/');
},
Skipfilename: (req, file, cb) => {
cb(null, new Date().toISOString() + '-' + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
if (
file.mimetype === 'audio/mp3' ||
file.mimetype === 'image/aug' ||
file.mimetype === 'image/jpg'
) {
cb(null, true);
}else {
cb(null, false);
}
};
app.use(bodyParser.urlencoded()); // x-www-form-urlencoded <form>
app.use(bodyParser.json()); // application/json
app.use(
multer({ storage: fileStorage, fileFilter: fileFilter }).any()
);
app.use('/images', express.static(path.join(__dirname, 'images')));
routes / admin.js
lines:5-12
const router = express.Router();
router.post('/upload',adminController.upload);
module.exports = router;
controllers / admin.js
exports.upload = (req, res, next) => {
const files= req.files
console.log(req)
res.status(200).json({ files:files});
}
更新 邮递员请求的屏幕截图
答案 0 :(得分:0)
在我将mp3模仿类型更改为正确的音频/ mpeg模仿类型之后,它开始工作。但这不是一个紧凑的解决方案