Изображение не отображается на экспресс? - PullRequest
0 голосов
/ 06 октября 2018

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

Я много раз пытался определить URL изображения, но изображение не показывается.

var multer  = require('multer');
var upload = multer({ dest: 'uploads/'});

Я пытаюсь показать изображение наviews/admin/dashbord/product/index file.

Папка для загрузки находится в моем корневом каталоге APP Name/uploads.

после загрузки изображения имя изображения: 8084404d8c59647b7067f4ed98aa3eef.PNG

Что должно бытьURL изображения и как я могу показать изображение в файле index.handlebars

Спасибо в Advanced.

1 Ответ

0 голосов
/ 07 октября 2018

create stroge Dir

  const storage = multer.diskStorage({
      destination: './public/uploads/',
      filename: function(req, file, cb){
        cb(null,file.fieldname + '-' + Date.now() + path.extname(file.originalname));
      }
    });

Загрузить файл

   const upload = multer({
      storage: storage,
      limits:{fileSize: 1000000},
      fileFilter: function(req, file, cb){
        checkFileType(file, cb);
      }
    }).single('myImage');

Проверить тип файла изображения или нет

function checkFileType(file, cb){
  // Allowed ext
  const filetypes = /jpeg|jpg|png|gif/;
  // Check ext
  const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
  // Check mime
  const mimetype = filetypes.test(file.mimetype);

  if(mimetype && extname){
    return cb(null,true);
  } else {
    cb('Error: Images Only!');
  }
}

Маршрут, по которому вы хотите загрузить свое изображение:

 app.post('/upload', (req, res) => {
      upload(req, res, (err) => {
        if(err){
          res.render('index', {
            msg: err
          });
        } else {
          if(req.file == undefined){
            res.render('index', {
              msg: 'Error: No File Selected!'
            });
          } else {
            res.render('index', {
              msg: 'File Uploaded!',
            });
          }
        }
      });
    });

А потом используйте изображение где угодно.файл для загрузки должен находиться в папке Public.

Вам необходимо установить multer и импортировать пакет, а также импортировать path

...