background image

在处理大文件时,无法忍受因为一时的网络原因导致上传失败,从而重新再上传的烦恼。好
的方法是将一个大文件分成

N 个小块来进行上传,即使第一次失败了,之前上传的那部分

由于得到了保留,再次点击上传时,以前已经传输成功的部分就不会再次被重新写入文件。
注意,第二次上传时,文件还是从

0 开始传输到服务器,而不能根据服务器上的文件选择

性的传输片断,这部分不太好节省,有兴趣的可以研究下。

如何实现异步上传

这里可以利用

jQuery 的相应插件来完成,它的主要功能是将文件分割成 N 多个小块来批量

上传

,参考网址:

https://github.com/blueimp/jQuery-File-Upload

如何实现断点续传

其实这个也非常简单,在

Http 头信息中有一个 Conten-Range 的属性,它会说明此次传递的

文件内容的片断范围,我们只需要在后台解析这个范围稍加处理就可以实现。之所这么简单,
是因为有了上面的

jQuery 上传文件的插件,它负责将一个大文件分成 N 多小块进行传输,

这就有了请求头中的

Content-Range。

这篇文章主要参考了

http://weblogs.asp.net/bryansampica/archive/2013/01/15/AsyncMVCFileUpload.aspx

 ,但它没

有完成对文件的保存功能,我这里加了断点续传的逻辑。

效果图:

          

可支持同时上传多个文件