无法在angularJS中的$ http post方法中发送文件

时间:2016-09-27 09:53:22

标签: angularjs xmlhttprequest form-data

在我的项目中,我试图在成功上传文件后将文件发送到服务器。这是我的代码,请检查。

 fdata = new FormData();
 fdata.append("file", file);

 $http.post('/UserQuestionnaire/AddQuestionnaire?Name=' + questionDetails.questionName + '&Description=' + questionDetails.questionDescription, fdata,
        {
                                    headers: {
                                     'Content-Type': false,
                                     'SessionID':$rootScope.token
                                    }
                                }).then(function(success){
                                    console.log("success question uploaded" + success);
                                },function(error){
                                  console.log("error"+error);
                                });

所有数据都随查询字符串值一起提供,但文件未到达服务器。

2 个答案:

答案 0 :(得分:0)

IMO,在查询字符串中发送数据不是一个好习惯。

对于文件,您可以这样做。

var fd = new FormData();
var imgBlob = dataURItoBlob($scope.uploadme);
fd.append('file', imgBlob);


$http({
    url: '/UserQuestionnaire/AddQuestionnaire',
    method: 'POST',
    data: params

});

将标题用作

headers: {
  'Content-Type': 'multipart/form-data'
},

答案 1 :(得分:0)

我按照自己的方式得到了答案。以下是更新后的代码。

{
 transformRequest: angular.identity,
 headers: {
           'Content-Type': undefined,
           'SessionID':$rootScope.token
         }
}

这是参考链接。看看Multipart/form-data File Upload with AngularJS