2016-05-10 4 views
-1

Я могу загружать файлы в node.js с помощью промежуточного программного обеспечения, называемого multer.but, когда я указываю путь назначения: '/ uploads /'. Файлы сохраняются в C: дисксохранение загруженного файла в каталоге проекта с помощью multer

var express = require('express'); 
var router = express.Router(); 


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

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

    var emp = require('../models/employees.js'); 

    router.post('/', upload.single('file'), function(req,res,next){ 
    console.log("Server: got file "); 
    console.log(req.file); 
    var upl = new emp({picture: req.file.originalname}); 
     upl.save(function(err,docs) { 
      if (err) { 
      console.log(err); 
      } 
       res.json(docs); 
     }); 
    }); 
    module.exports = router; 

я попытался дать длинную строку пути тоже, как

'/users/user/webstormprojects/template/public/uploads/image/' 

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

ответ

1

Попробуйте использовать Path Module.И затем используйте _dirname. См. Код ниже

var path = require('path') 
var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
    cb(null, path.join(__dirname + '/uploads/')) 
    }, 
    filename: function (req, file, cb) { 
    cb(null, file.originalname) 
    } 
}) 

Это должно решить вашу проблему. _dirname даст вам доступ к каталогу, в котором вы работаете.

+0

с этим код моей программы заканчивается внутренней ошибкой сервера, любая другая идея @Aditya kumar – jsgeek

0

Добавьте эту строку в вашем app.js или index.js файл

app.use(express.static(__dirname + '/public', { maxAge: week })); 

затем загрузить файлы внутри /добавления как это

destination: function (req, file, callback) { 
    callback(null, './public/uploads'); 
}, 

NB: убедитесь, что есть загрузки папки внутри папки

Смежные вопросы