上传下载 - nelsonLeeeeee/htwa GitHub Wiki
(此文件是从有道拿下来的,表格加载不出来,有点尴尬)
- 获取文件大小
- 获取块大小
- 定义滚动条
- 分块上传
分块上传: 采用定时上传,每20ms发送一次上传块请求。(上传过程中会阻塞,当前块上传完成才能进入下一块上传)
加密/不加密 客户端读取文件:每次取512KB文件进行Base64编码(读取的是编码后的数据) document.all.blockFile.ReadFile( clientFilePath, index, uploadBlockSize, true) 每次取512KB文件document.all.blockFile.ReadFile( clientFilePath, index, uploadBlockSize, false) 上传块文件:按照算法加密 直接将文件块存储到服务器 下载: 获取文件信息; 根据文件信息下载文件:根据加密算法判断是否是加密文件。按照data长度读取块文件返回给客户端 直接读取默认大小(512KB)的数据返回给客户端
加密算法:A!BDEYTA+Base64的文件长度(9位,不足前面补0) 例如:A!BDEYTA012345678
上传文件是将文件写到临时目录下,然后再将文件copy到服务器指定目录下,目录是按照时间来命名的。