将文件从Angular JS上传到Sails JS

时间:2015-08-03 16:45:20

标签: angularjs node.js file-upload sails.js

我是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删除该行,我认为它应该默认将它保存到临时文件夹中。我试过了,我收到了成功消息,但没有创建临时文件夹。任何想法?

2 个答案:

答案 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 /