【问题标题】:ExpressJS Multer File PersmissionExpress JS Multer 文件权限
【发布时间】:2015-12-31 10:35:16
【问题描述】:
var express = require('express');
var app = express();
var fs = require("fs");

var bodyParser = require('body-parser');
var multer  = require('multer');

app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multer({ dest: '/new/'}));

这是文件的开始。在启动服务器时它总是显示以下消息

/usr/lib/node_modules/multer/node_modules/mkdirp/index.js:90 抛出错误0; ^ 错误:EACCES,权限被拒绝 '/new' 在 Object.fs.mkdirSync (fs.js:654:18) 在 Function.sync (/usr/lib/node_modules/multer/node_modules/mkdirp/index.js:71:13) 在新的 DiskStorage (/usr/lib/node_modules/multer/storage/disk.js:21:12) 在 module.exports (/usr/lib/node_modules/multer/storage/disk.js:65:10) 在新的 Multer (/usr/lib/node_modules/multer/index.js:15:20) 在 multer (/usr/lib/node_modules/multer/index.js:75:12) 在对象。 (/var/www/node/server.js:10:9) 在 Module._compile (module.js:456:26) 在 Object.Module._extensions..js (module.js:474:10) 在 Module.load (module.js:356:32)

如果有人可以帮助我防止这个问题,请告诉我。非常感谢。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    multer 正在尝试在全局 node_modules 位置创建目标文件夹 /new。更改到本地目的地的路径。试试下面的

    app.use(multer({ dest: './new/'}));
    

    如果您在上述尝试中遇到错误,请尝试

    app.use(multer({ dest: __dirname +'/new/'}));
    

    【讨论】:

    • 这些给了我这个错误:TypeError: app.use() requires middleware functions
    • @EmamulAndalibAyon 你试过 Krzysztof Sztompka 的答案吗?
    • 添加 dirname 刚刚解决了我处理了 3 个小时的问题。谢谢拉姆!!!
    【解决方案2】:

    你有两个问题:

    1) 您将全局目标路径设置为 multer。而且 multer 无权创建该路径(这是正确的)。我怀疑您想在项目中创建“新”目录,如果是,则将路径更改为“./new/”。当你解决这个问题时,我们就会遇到第二个问题。

    2) Multer 模块更改 API。它不起作用:

    app.use(multer({ dest: './new/'}));
    

    除非您有旧版本的 multer(不要使用旧版本,否则会有安全问题)。查看文档页面了解如何使用 multer:link。您可以查看我对类似问题的回答:link。简而言之:

    配置目标路径:

    var upload = multer({ dest: './new' })
    

    然后在您要上传文件的每个路由中

    app.post('/profile', upload.single('fieldname'), function (req, res, next) {
    //req.file has data of uploaded file
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 2015-11-11
      • 2016-12-03
      相关资源
      最近更新 更多