multer:保留原始图像文件名

Nic*_*ick 2 javascript node.js express multer

我正在使用multer将图像上传到快速服务器,默认情况下 multer 创建自动生成/随机文件名(这通常很好),但在我的特殊情况下,我需要文件名与原始文件名相同,我已经尝试过下列的:

const upload = multer({
  dest: `${__dirname}/path/to/folder`,
  filename: function (req, file, cb) { cb(null, file.originalname) }
})
Run Code Online (Sandbox Code Playgroud)

但图像不断被重命名为 multer 的随机名称。我也尝试过该destination属性而不是dest...但同样的问题。

Har*_*tel 9

尝试以下代码。

var storage = multer.diskStorage({
    destination: function (req, file, callback) {
        callback(null, './assets/images');
    },
    filename: function (req, file, callback) {
        callback(null, file.originalname);
    }
});

var upload = multer({ storage: storage }).single('userPhoto');


app.post('/upload', async (req, res) => {
    upload(req, res, function (err) {
        if (err) {
            console.log(err)
        } else {
            var FileName = req.file.filename;
            res.status(200).send(FileName);
        }
    })
});
Run Code Online (Sandbox Code Playgroud)