【发布时间】:2014-11-16 14:07:33
【问题描述】:
我正在尝试使用以下指令将文件上传到sails.js 应用程序服务器: ng-file-upload
我的客户端上传已选择的图像是这样的:
$upload.upload({
url:'upload/item-image',
headers:{
'Content-Type': 'multipart/form-data'
},
data:{blah:'blah'},
file: $scope.uploadFile,
fileName:$scope.uploadFile.name
}).success(function(data){
console.log(data);
}).error(function(err){
console.log(err);
});
我在服务器上处理上传的sails.js控制器方法是这样开始的:
upload: function (req, res) {
req.file('item-image').upload(function (err, files) {
if (err)
return res.serverError(err);
if(!files.length)
return res.serverError('No files received for upload.');
var file = files[0];
...
}
...
}
然而,当服务器函数被调用,并且 body 上的 json 数据存在时,req.file('不管放在这里') 回调没有找到文件。
提前致谢。
【问题讨论】:
-
我不熟悉sails,但我有类似的情况与express,我最终配置了一个中间件来处理请求的post/file,我使用了busboy,也许你可以找到一个类似的帆的方法
-
我猜你没有给
req.file()正确的参数,即文件正在上传的字段的名称。绝对不是item-image。你试过req.file('file')吗? -
虽然我最终自己发现了这一点,但你的解决方案是正确的,@sgress454。请把它写成一个完整的答案,这样我就可以这样标记它。
-
另外,@sgress454,你似乎是sails.js 的核心贡献者,我想花点时间告诉你我爱你:)。
标签: javascript node.js angularjs file-upload sails.js