невозможно изменить имя загружаемого файла с помощью multer - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь изменить имя изображения, которое я загружаю на сервер, используя multer, что дает файлу случайное имя.Я использую multer.diskStorage метод, как описано в документации, но он сохраняет файл со случайными именами

КОД:

const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null,'./uploads/')
    },
    fileName: (req,file,cb) => {
        cb(null, file.originalname)
    }
})
const upload = multer({storage: storage})


router.post('/', upload.single('carImage') ,(req, res) => {

    res.send(req.file);
}

ОТВЕТ:

{ 
  fieldname: 'carImage',
  originalname: 'testOCR8.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  destination: './uploads/',
  filename: '229f70c20e5550dbe638db49791ef17d',
  path: 'uploads/229f70c20e5550dbe638db49791ef17d',
  size: 1712380 
}

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

я загружаю на сервер, используя multer, который дает файлу случайное имя

Вы сделали опечатку.Это filename не fileName.Это стандартное поведение согласно документам .

filename используется для определения имени файла в папке.Если filename не указано, каждому файлу будет присвоено случайное имя, которое не будет иметь никакого расширения.

Итак, ваш код должен быть

const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null,'./uploads/')
    },
    filename: (req,file,cb) => { // notice the change 'filename'
        cb(null, file.originalname)
    }
});
const upload = multer({storage: storage});
0 голосов
/ 22 мая 2018

Попробуйте использовать другой подход для использования StorageMulter.Попробуйте следующее -

var StorageMulter = multer.diskStorage({
   destination: function(req, file, callback) {
      callback(null, "./temp");
   },
   filename: function(req, file, callback) {
      var uploadFileName = "x.jpg"; //Manipulate this variable accordingly
      callback(null, uploadFileName);
   }
});

var upload = multer({
   storage: StorageMulter
});

app.post("/api/uploaddocument", function(req, res) {
   upload(req, res, function(err) {
      if (err) {
         return res.end("Something went wrong!"+ err);
      }
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...