NetCore 上传,断点续传,可支持流上传


之前公司要做一个断点续传的业务,找了许多都没有找到合适的,都是残次不全的,终于让我遇到一个基于百度的 webuploader 的断点续传。
原作者: 断点续传(上传)( https://www.somethingwhat.com/detail?id=deccc98bb1df57fc),那时候真感觉是大牛啊

然后呢,真的很好用,但是不是Net core 版本的,我又不好意思叫原作者移植一个Net core 的版本,所以,我就移植了一个Net core 的版本,思路没有变化,就是支持Net core了,希望有人能用到。

如果Net core  有更好的断点续传方式,还请告知一下。     

思路还是根据文件的md5值,作为断点续传的依据,上传文件时接口请求一下服务器上是否有上传过,如果有,则接着传;没有就从第一片开始上传。

主要是需要前端支持分片,对一个大文件进行分片。

  1. 前端用百度的webUpload 上传,断点续传的思路:根据文件的md5值去服务器上检查一下,是否有文件切片,如果有就跳过服务器上的最大片数接着传,无文件切片,则从第一片(+1)开始上传,代码截图如下:
  2. 对应的代码都注释,还是不截图了吧、

  3.  后端主要就三个主方法,1.获取指定文件的已上传的最大文件块(GetMaxChunk 2.文件分块上传 (ChunkUpload 3.合并文件(MergeFiles),其他方法只是进行一个简单的封装,不要让这三个方法巨大无比。

    

源码已经开源到github了,地址为:https://github.com/YPTopMan/FileUpload 

还有一个数据库文档管理的工具:https://github.com/YPTopMan/DBManger-NetCore

 

再次感谢,大神的 net framework 的断点续传,太厉害了。  

 

posted @ 2019-01-07 16:26  胡一飘  阅读(2182)  评论(0编辑  收藏  举报