我使用了 Academind 的教程,如何使用 multer 将图像加载到节点 JavaScript Rest 服务中。 关于路径目标文件夹我使用此代码:
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/');
},
filename: function(req, file, cb) {
cb(null, file.originalname);
}
});
const fileFilter = (req, file, cb) => {
// reject a file
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true);
} else {
cb(null, false);
}
};
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 5
},
fileFilter: fileFilter
});
但是生成的路径有双反斜杠,显示为一个反斜杠: 上传�8-09-16T13-02-45.535Z1536685465dummy4.jpg 如何用斜杠替换目标路径?
我有同样的问题,因为我没有找到任何东西,所以我这样做是为了解决问题
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/');
},
filename: function (req, file, cb) {
cb(null, `${new Date().toISOString().replace(/:/g, '-')}${file.originalname.split(" ").join("_")}`);
}
});
const user= new User({
_id : new mongoose.Types.ObjectId(),
name : req.body.name,
image: req.file.destination + req.file.filename,
});
我认为你应该检查前端以查找并用正常的
/
替换该反斜杠,然后它就会起作用。
这里有一些例子:
const image = resData.post.imageUrl.slice(0,6) + '/' + resData.post.imageUrl.slice(7)