双反斜杠进入路径

问题描述 投票:0回答:2

我使用了 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 如何用斜杠替换目标路径?

node.js multer
2个回答
0
投票

我有同样的问题,因为我没有找到任何东西,所以我这样做是为了解决问题

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, 
        });

0
投票

我认为你应该检查前端以查找并用正常的

/
替换该反斜杠,然后它就会起作用。

这里有一些例子:

const image =  resData.post.imageUrl.slice(0,6) + '/' + resData.post.imageUrl.slice(7)

© www.soinside.com 2019 - 2024. All rights reserved.