如何在不使用自定义指令的情况下从AngularJS向Sails发送文件?

时间:2016-06-04 04:09:02

标签: angularjs file-upload sails.js

所以我需要将图像上传到服务器。现在它只适用于通过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});
    });
}

0 个答案:

没有答案