HTTP断点续传 上传功能

HTTP断点续传 上传功能

ID:37239615

大小:84.46 KB

页数:8页

时间:2019-05-20

HTTP断点续传 上传功能_第1页
HTTP断点续传 上传功能_第2页
HTTP断点续传 上传功能_第3页
HTTP断点续传 上传功能_第4页
HTTP断点续传 上传功能_第5页
资源描述:

《HTTP断点续传 上传功能》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、由于业务需要,手机需要采用http方式传输文件到后台WEB服务器,1、2百K的小文件不会有太大问题,几M甚至几百M的文件就很容易传输失败。所以考虑实现HTTP文件断点续传功能,基本流程如下:1.客户端计算本地要上传的文件的hashcode2.根据指定的块大小和文件大小计算最终的块数3.发送文件信息到服务器包括要上传的文件名、大小、类型、块数、Hashcode4.服务器根据hashcode查询服务器上是否已经存在对应的文件,以及文件的上传状态(上传是否完成、是否组装完成、已经上传了哪些块)5.6.已经上传完成的读取文件URL地址返回给客户端7.8.未上传完成的

2、返回已经上传的块编号9.客户端根据返回值判断,如果未上传完成则从本地文件中读取未上传完成的块内容10.使用HTTP方式上传到服务器11.记录已经上传完成的块到数据库12.检查整个文件是否已经上传完成13.未完成则返回已经上传的块编号到客户端让它继续上传14.上传完成则进行块文件合并过程,将其合并成目标文件15.合并完成后返回目标文件的URL地址首先是数据库表格:createtabletb_fileupload(fseqintprimarykeyauto_increment,#自增序列fusernamevarchar(50),#上传者fhashcodevarc

3、har(100),#hash码fsizeint,#文件大小fblocksint,#块数ftypevarchar(50),#文件类型freadyvarchar(1024),#已上传完成的块编号finerpathvarchar(200),#内部存储路径fouterpathvarchar(200),#外部存储路径fisfinishedintdefault0,#要否上传完成ftimedatetime#创建时间)接下来是客户端代码:importjava.io.FileInputStream;publicclassAuth{publicstaticbyte[]creat

4、e(Stringfilename)throwsExcepiton{InputStreamfis=newFileInputStream(filename);byte[]buf=newbyte[1024];MessageDigestcom=MessageDigest.getInstance("MD5");intnum;do{num=fis.read(buf);if(num>0){com.update(buf,0,num);}}while(num!=-1)fis.close();returncom.digest();}publicstaticStringgetMD

5、5(Stringfilename)throwException{byte[]b=create(filename);Stringresult="";for(inti=0;i

6、hashcode查找FileInfoinfo=fileSer.getFileByHash(hashcode);if(info==null){}//找不到则新增文件信息fileSer.saveFileInfo(username,filename,filesize,hashcode,blocks,filetype);return"added";}if(info.fisfinished){//如果已经上传完毕则返回外部访问路径returninfo.fouterpath;}else{//未上传完毕则返回已经上传的块returninfo.fready;})2:priv

7、ateFileblock;publicvoidsaveblock(){if([这里验证与块一起上传的block信息]){return"error";}FileInfoinfo=fileSer.getFileByHash(hashcode);if(info!=null){if(info.fisfinished){//如果已经上传完毕则返回外部访问路径returninfo.fouterpath;}FileInputStreaminStream=newFileInputStream(block);FileOutputStreamoutStream=newFileO

8、utputStream(block存储路径+hash

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。