我是Sails的新手,我试图在前端使用Angular上传文件。这是我的FileController
module.exports = {
upload: function (req, res) {
req.file('file').upload({
dirname: require('path').resolve(sails.config.appPath, '/assets/images')
},function (err, uploadedFiles) {
if (err) return res.negotiate(err);
return res.json({
message: uploadedFiles.length + ' file(s) uploaded successfully!'
});
});
}
};
我在尝试创建保存文件的目录时遇到此错误:
Sending 500 ("Server Error") response:
Error: EACCES, mkdir '/assets' { [Error: EACCES, mkdir '/assets'] errno: 3, code: 'EACCES', path: '/assets' }
如果我用dirname删除该行,我认为它应该默认将它保存到临时文件夹中。我试过了,我收到了成功消息,但没有创建临时文件夹。任何想法?
答案 0 :(得分:6)
我遇到了同样的问题。 你必须改变这一行:
dirname: require('path').resolve(sails.config.appPath, '/assets/images')
这一个:
dirname: sails.config.appPath + '/assets/images'
问题是您需要root权限,因为Sails正在您的主目录中创建一个文件夹(而不是在您的app文件夹中......)。
答案 1 :(得分:0)
确保您对要上传文件的文件夹有正确的权限,请尝试sudo chmod 775 assets /