angular js:通过http post请求上传带有multipart / form-data的文件

时间:2016-02-02 13:52:36

标签: javascript jquery angularjs node.js multer

我正在进行多个文件上传。首先与您分享技术。前端:角度js和后端:节点js。当我使用以下代码时,它对我来说很好。

<form id="uploadForm" action="http://localhost:3000/api/policy/upload/file" enctype="multipart/form-data" method="post">
    Choose file
    <input type="file" id="pdfInp" multiple onchange="angular.element(this).scope().setFiles(this)" file-model="myFile" name="uploadedFiles">
    <input type="submit" value="Upload Image" name="submit">
</form>

我正在使用multer上传节点js中的文件。但是每当我通过调用函数而不是使用action属性来做同样的事情时,它就会失败。我的角度代码是在提交时调用的。

<form id="uploadForm" ng-submit="uploadFile(myFile);" enctype="multipart/form-data" method="post">
    Choose file
    <input type="file" id="pdfInp" multiple onchange="angular.element(this).scope().setFiles(this)" file-model="myFile" name="uploadedFiles">
    <input type="submit" value="Upload Image" name="submit">
</form>

$scope.uploadFile = function (files) {
    var fd = new FormData();
    fd.append('file', files);
    $http.post('http://localhost:3000/api/policy/upload/file', fd, {
        transformRequest: angular.identity,
        headers: {
            'Content-Type': undefined,
        }
    }).success(function (result) {
        console.log(result);
    }).error(function(result){
        console.log(result);
    })
}

请帮帮我。为什么文件没有上传到调用函数并通过formdata传递文件。提前谢谢。

0 个答案:

没有答案