使用multer上传图片时出现mkdir错误

时间:2019-06-11 10:11:39

标签: node.js mongoose image-uploading mongoose-schema multer

在上传文件并创建路径时,我正在创建一个文件夹错误:-

Error: EACCES: permission denied, mkdir '/opt/bitnami/apps/NodeJS-Login/uploads'
    at Object.fs.mkdirSync (fs.js:885:18)
    at Function.sync (/opt/bitnami/apps/NodeJS-Login/node_modules/mkdirp/index.js:71:13)
    at new DiskStorage (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/storage/disk.js:21:12)
    at module.exports (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/storage/disk.js:65:10)
    at new Multer (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/index.js:15:20)

我正在AWS上使用bitnami托管我的MEAN应用。

在我的主要 server.js 文件中

我添加了以下内容:-

app.use(multer({ dest: './uploads/',
 rename: function (fieldname, filename) {
   return filename;
 },
}));

关于模式模型:-

companyLogo: {
                data: Buffer,
                type: String
                }

控制器中的路线:-

admin.companyLogo = fs.readFileSync(req.files.comLogo.path)
admin.companyLogo.type = 'image/png';

我应该怎么做才能上传图片?我还必须在表单数据中传递其他键值,而不是原始值吗?

1 个答案:

答案 0 :(得分:0)

/ opt默认情况下处于写保护状态,因此这里有可能的解决方法

1)更改/ opt的权限,并允许用户在此文件夹中写入(不推荐

OR

2)以超级用户身份运行server.js,这样您就可以完全访问目录,并且可以执行任何操作(不推荐

OR

3)只需将路径更改为用户有权写的位置(推荐