сохраненное изображение не может открыть сохраненное изображение на сервере узла - PullRequest
0 голосов
/ 02 апреля 2020

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

Это код запроса сервера.

const multer = require('multer')
const avatar = multer({dest: 'public/avatar/'})
app.post('/uploadPhoto', avatar.single('file'), function(req, res) {
   console.log(req.file)
})

Это результат консоли.

  file: {
    fieldname: 'file',
    originalname: 'git - Copy.jpg',     
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: 'public/avatar/',      
    filename: 'ac578f8b2b1a629c89f85d3a7215ed18',
    path: 'public\\avatar\\ac578f8b2b1a629c89f85d3a7215ed18',
    size: 4786565
  }

И Я вижу public/avatar/ac578f8b2b1a629c89f85d3a7215ed18 на моем компьютере. Но я не могу открыть это. Как преобразовать данные файла запроса в правильные данные типа изображения.

Теперь, если я попытаюсь открыть его, я могу получить это предложение.

The file is not displayed in the editor because it is either binary or uses an unsupported text encoding.

1 Ответ

1 голос
/ 19 апреля 2020

Нам нужно указать расширение файла, который мы пытаемся сохранить. Вы можете использовать механизм disktorage, чтобы иметь больше контроля над тем, как файлы хранятся на диске.

const storage = multer.diskStorage({
      destination: function(req,file,callback){
                     const path = `/public/avatar/`;
                     callback(null, path);
           },
      filename: function(req,file,callback){
                    callback(null,`${file.originalname}`);
       }});

В объекте file у нас есть все свойства файла, такие как originalname, и мы можем использовать его для установки имени файла .

Наконец, передайте это в multer

const upload = multer({storage: storage});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...