Multer 不保存图片
Multer isn't saving pictures
我的路由器有多个设置 -
const express = require('express');
const path = require('path');
const multer = require('multer');
const config = require('config');
const router = express();
const storage = multer.diskStorage({
destination(req, file, cb) {
cb(null, 'picture_db');
},
filename(req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname));
}
});
const upload = multer({
storage,
limits: {
fileSize: 2 * 1024 * 1024
},
fileFilter(req, file, cb) {
const ext = path.extname(file.originalname);
if (ext !== '.jpg' && ext !== '.jpeg' && ext !== '.png') {
const err = new Error('Extention');
err.code = 'EXTENTION';
return cb(err);
}
cb(null, true);
}
}).single('file')
router.post('/image',
async(req, res) => {
try {
let status;
upload(req, res, err => {
let error = '';
if (err) {
if (err.code === 'LIMIT_FILE_SIZE') {
error = 'file size';
}
if (err.code === 'EXTENTION') {
error = 'file extention';
}
status = error;
}
});
return res.status(200).json({
msg: status || 'OK',
});
} catch (err) {
return res.status(500).json({
msg: "a"
});
}
}
);
module.exports = router;
以及项目根目录中的一个文件夹 - picture_db
。
我还有一个邮递员查询 -
为什么图片没有保存在 picture_db
中?
我认为你这样做是错误的。上传文件时,您没有命名文件的密钥。
相反,您应该将邮递员中的密钥添加到 'file' 并上传文件并 运行 它。
我的路由器有多个设置 -
const express = require('express');
const path = require('path');
const multer = require('multer');
const config = require('config');
const router = express();
const storage = multer.diskStorage({
destination(req, file, cb) {
cb(null, 'picture_db');
},
filename(req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname));
}
});
const upload = multer({
storage,
limits: {
fileSize: 2 * 1024 * 1024
},
fileFilter(req, file, cb) {
const ext = path.extname(file.originalname);
if (ext !== '.jpg' && ext !== '.jpeg' && ext !== '.png') {
const err = new Error('Extention');
err.code = 'EXTENTION';
return cb(err);
}
cb(null, true);
}
}).single('file')
router.post('/image',
async(req, res) => {
try {
let status;
upload(req, res, err => {
let error = '';
if (err) {
if (err.code === 'LIMIT_FILE_SIZE') {
error = 'file size';
}
if (err.code === 'EXTENTION') {
error = 'file extention';
}
status = error;
}
});
return res.status(200).json({
msg: status || 'OK',
});
} catch (err) {
return res.status(500).json({
msg: "a"
});
}
}
);
module.exports = router;
以及项目根目录中的一个文件夹 - picture_db
。
我还有一个邮递员查询 -
为什么图片没有保存在 picture_db
中?
我认为你这样做是错误的。上传文件时,您没有命名文件的密钥。
相反,您应该将邮递员中的密钥添加到 'file' 并上传文件并 运行 它。