angularjs使用$http post上传文件的时候,怎样获取文件上传的进度?

angularjs使用$http post上传文件的时候,怎样获取文件上传的进度?

网上找的一些现成插件如angular-loading-bar啥的,放进去不好使啊。

所以就想问问如何可以获取到文件上传的进度?

阅读 6.8k
1 个回答

首先可以用html5自带的XMLHttpRequest,增加了上传监听事件,具体可以参考这个链接
https://developer.mozilla.org...

angular在1.5.5以上的版本中,在$http中也加入了eventHandler和uploadEventHandlers等方法,
所以可以直接这样写:

$http({
    method: 'POST',
    url: url,
    eventHandlers: {
        progress: function(c) {
            console.log('Progress -> ' + c);
            console.log(c);
        }
    },
    uploadEventHandlers: {
        progress: function(e) {
            console.log('UploadProgress -> ' + e);
            console.log(e);
        }
    },
    data: uploadData,
    }).success(function(data) {
        console.log(data);
    }).error(function(data, status) {
        console.log(data);
    });

最后,也可以用比较成熟的组件去解决,推荐angular-file-upload
https://github.com/nervgh/ang...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题