Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用multer在项目目录中保存上载的文件_Node.js_Multer - Fatal编程技术网

Node.js 使用multer在项目目录中保存上载的文件

Node.js 使用multer在项目目录中保存上载的文件,node.js,multer,Node.js,Multer,我可以使用名为multer的中间件在node.js中上载文件,但当我给出目标路径时:'/uploads/'。文件保存在c:驱动器中 var express = require('express'); var router = express.Router(); var multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(nu

我可以使用名为multer的中间件在node.js中上载文件,但当我给出目标路径时:'/uploads/'。文件保存在c:驱动器中

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/'
但它以内部服务器错误结束
请有人帮助我,以便我能够将上载的文件保存到项目目录中。

尝试使用路径模块,然后使用_dirname。请参见下面的代码


这应该能解决你的问题_dirname将允许您访问正在使用的目录。

在app.js或index.js文件中添加此行

app.use(express.static(__dirname + '/public', { maxAge: week }));
然后像这样上传你的文件

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

NB:确保公用文件夹中有uploads文件夹

使用此代码,我的程序以内部服务器错误结束,还有其他想法@Aditya kumar
destination: function (req, file, callback) {
    callback(null, './public/uploads');
},