所以我需要将图像上传到服务器。现在它只适用于通过HTML发出的POST请求。但是我需要在上传之前发送其他数据并做其他事情,所以我想使用$http.post(...)
在Angular控制器内发送请求。我已经看到了一些使用自定义指令的非常复杂的解决方案,但我想知道是否还有一些直接做的事情:
$scope.uploadPhoto = function(){
var fd = new FormData();
fd.append("uploadFile", $scope.file);
$http.post('file/upload', fd);
}
工作代码:
HTML:
<form id="uploadForm"
enctype="multipart/form-data"
action="/file/upload"
method="post">
<input type="file" name="uploadFile" />
<input type="submit" value="submit"/>
</form>
Sails Controller:
upload: function (req, res) {
var uploadFile = req.file('uploadFile');
uploadFile.upload(
{ dirname: '../../assets/images',
saveAs: function(file, cb) {
cb(null, file.filename);
}
}, function onUploadComplete (err, files) {
if (err) return res.serverError(err);
res.json({status:200,file:files});
});
}