2015-11-21 4 views
0

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

после загрузки файлов с multer и выразить, какой будет URL-адрес загруженных файлов на uploads/?

var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
     cb(null, 'uploads/') 
    } 
}); 

, если это изображение, как я могу связать с ним нравится: http://localhost:3000/uploads/image.jpg?

Должен ли я размещать загруженные файлы в общедоступном каталоге?

благодаря

+0

удалось решить эту проблему, добавив публичную экспресс-директорию с «app.use», хотя я не уверен, что произойдет, если у меня есть соответствующие местоположения в обеих общих каталогах. например, 'public/img' и 'uploads/img' –

ответ

0

Это, как я настройка Multer для expressjs. Сначала вам нужно перезаписать функцию переименования, если вы хотите сохранить исходное имя файла. Затем вам нужно переместить папку uploads в общую папку.

// this uploads a single input[file] field called 'image' 
var express = require('express'), 
    multer = require('multer'), 
    upload = multer({ 
     storage: multer.diskStorage({ 
      destination: 'public/images/uploads/', 
      filename: function(req, file, cb) { 
       // this overwrites the default multer renaming callback 
       // and simply saves the file as it is 
       cb(null, file.originalname) 
      } 
     }) 
    }), 
    router = express.Router() 

// add route 
router.post('/uploadimage', upload.single('image'), function(req, res, next) { 
    if (!req.file) return next(new Error('Select a file!')) 
    // be careful here as the upload path has 'public' at the start 
    // which is the static mounted directory so doesn't show 
    // here the path is build manually 
    var imagePath = '/images/uploads/' + req.file.filename; 
    res.end('<img src=" + imagePath + " />')   
}) 

дополнительно вы можете держать путь по умолчанию для загрузки в /uploads и смонтировать его как статическая папку

// Mount uploads 
    app.use(express.static(path.resolve('./uploads'))); 
Смежные вопросы