小编use*_*261的帖子

AngularJS $ http POST中文件上传进度的示例

我正试图从AngularJS $ http POST请求获取文件上传的"进度"事件.

在AngularJS中查看$ http上传文件进度后,我遇到了一个最近的angular.js git commit,它假设解决了 将$ XHR进度事件处理添加到$ http和$ httpBackend的问题.

有没有人实现这个工作?如果是这样,可以展示这个例子吗?

PS.我宁愿继续使用$ http而不是创建自己的XMLHttpRequest.原因是我的后端希望将json对象与多部分文件数据结合起来.并且尝试通过XMLHttpRequest失败,并显示错误消息,即后端未看到请求的json对象部分"必需字符串参数'objData'不存在.客户端发送的请求在语法上是不正确的." 在POST消息中,我在Firebug中看到"Content-Disposition:form-data; name ="objData"".

   $scope.uploadFile = function() {
    var url = buildUrl('/upload');
    var data = {objData: $scope.data, fileData: $scope.file};
    var formData = new FormData();

    formData.append("objData", angular.toJson(data.objData));
    formData.append("fileData", data.fileData);

    var xhr = new window.XMLHttpRequest();

    xhr.upload.addEventListener("progress", uploadProgress, false);

    xhr.open("POST", url);
    xhr.setRequestHeader("Content-Type","application/json;charset=utf-8");
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.send(formData);
};
Run Code Online (Sandbox Code Playgroud)

angularjs

5
推荐指数
1
解决办法
7158
查看次数

标签 统计

angularjs ×1