文件快速上传和下载原理

<1>Remote端(服务器端)数据的处理
没必要去实现这个算法。直接调用库就可以了。
chunk一块一块的数据块
1. 将Remote端(服务器端)的数据按照Chunck进行切分
2. 计算每一个chunk的弱校验和(Adler-32算法)与强校验和(MD5算法)
3. 保存进Map中,key为弱校验ID,value为chunk链表
 Map>

<2>Local 端处理(本地端)
1. 读取一个Chunck  判断数据是否够一个chunck大小
2. 根据读取到的Chunk 去Remote的Map中判断是否匹配. 如果匹配上看之前是否有differ Data ,如果有Differ Data则将diff Data加入patch中.
最终会得到一个以匹配上的chunk index + differ Data的链表

如果不匹配,就右移动一个字节,左边剩下的那个字节叫differ date,是服务器里没有的字节,是需要上传的字节。

differ date(**)
**01**02**03****0x  服务器收到的数据
然后匹配填充形成新数据
新数据 = differ date(客户端穿上来的)+ 服务器里已有的匹配数据

这种算法的优缺点:节省了上传的文件大小,但是牺牲了CPU(CPU需要不停地计算,占用了CPU)

网页是不能读取本地文件(处于安全考虑);所以有时需要装插件。

分享:

时间: 2024-10-07 10:19:41

文件快速上传和下载原理的相关文章

JSP中文件的上传于下载示例

一.文件上传的原理 1.文件上传的前提: a.form表单的method必须是post b.form表单的enctype必须是multipart/form-data(决定了POST请求方式,请求正文的数据类型) 注意:当表单的enctype是multipart/form-data,传统的获取请求参数的方法失效. 请求正文:(MIME协议进行描述的,正文是多部分组成的) -----------------------------7dd32c39803b2 Content-Disposition:

Servlet方式实现文件的上传和下载

文件的上传和下载需要两个jar包  commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar JSP页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncTy

【Linux命令】--(4)文件打包上传和下载

文件打包上传和下载 +++++++++++++++++++++++++++++++用SecureCRT来上传和下载文件tar命令gzip命令+++++++++++++++++++++++++++++++先把计划放着,待老夫国庆把它学完!

【php】文件的上传与下载

一. 生活中常见的地方: a) 例如邮箱.空间.文库.百度云.微爱等地方,都可以看到文件的上传和下载的应用,因此,上传和下载的功能非常重要!二. PHP当中的文件上传和下载 a) 我们需要进行一些设置,来使我们的表单具有提交文件的功能! b) 客户端的设置: i. 其实就是表单的设置: 1. input表单项中的type属性值必须是file类型 2. form表单头部需要添加一个通行证:enctype="multipart/form-data",含义为让服务器认识到我们要在这个表单中上

SpringMVC实现文件的上传和下载

前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流".我回复他说:"使用SpringMVC框架可以做到这一点,因为SpringMVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包."鉴于这个问题,我上网也百度了一下,网上很多都是介绍的使用IO流来实现文件的上传和下载,也有说到框架的,但介绍的并不是很完整,今天小钱将和大家介绍使用Spr

SecureCRT使用sz和rz命令进行文件的上传和下载

SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. 本地文件夹可以通过Options-->Session Options中进行设置.

iOS开发中文件的上传和下载功能的基本实现-备用

感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码代码如下: YYViewController.m#import "YYViewController.h" #define YYEnc

步步为营-70-asp.net简单练习(文件的上传和下载)

大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成 1 通过asp.net 完成图片的上传 1.1 创建html页面 注意:1 method="post" ;2 enctype="multipart/form-data"; 3 <input type="file" /> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&