multer: сохранить оригинальное имя файла изображения - PullRequest
0 голосов
/ 08 марта 2020

Я использую multer для загрузки изображений на сервер express, по умолчанию multer создает автоматически сгенерированные / рандомизированные имена файлов (что, как правило, хорошо), но в моей конкретной ситуации мне нужно, чтобы имена файлов были Так же, как и в оригинале, я пробовал следующее:

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

, но изображения продолжают переименовываться в случайное имя мультера. я также пробовал свойство destination вместо dest ... но та же проблема.

1 Ответ

1 голос
/ 08 марта 2020

Попробуйте следующий код.

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