zoukankan      html  css  js  c++  java
  • 大文件上传

    上传基本上是这样的:

    1. 首先传送目标文件的工程分类、路径和名称,以及文件的md5散列值。

    2. 如果服务器端发现已经有此文件,并且md5一致,返回“成功”。否则,如果存在此文件,但是md5不一致,

    返回“需要上传”。否则,如果没有此文件,查找以前的与此md5相同的文件的快照,拷贝成目标文件,

    返回“成功”。如果都失败,返回“需要上传”。

    3. 客户端如果收到“需要上传”消息,开始分块(比如说1M字节为一块)上传。具体是:
     a. 首先发消息让服务器检此数据块的md5,如果客户端跟跟服务一致,跳过此块。
     b. 如果不一致,发送此块数据到服务器,覆盖服务器端文件文件数据块。
     c. 按照上述a和b两点,继续处理余下的数据块。
     d. 最后把服务器端文件的长度“修剪”成跟客户端文件一样长。

    注意:客户端上传文件是并发多线程的,只是每一个文件的上传过程内部流程是顺序的

    参考资料:https://www.cnblogs.com/gaocong/p/5512371.html

         http://www.jb51.net/article/80658.htm

         https://www.cnblogs.com/qianxiaojinnian/p/4731884.html

         http://www.jb51.net/article/80732.htm

         http://www.jb51.net/article/111463.htm     

         https://www.linuxidc.com/Linux/2014-09/106816.htm

         https://blog.csdn.net/yu18352566889/article/details/78499072

  • 相关阅读:
    Python学习(一)
    使用OpenSSL生成CSR文件,并申请全球通用SSL证书
    windows 8.0 mysql 修改root 密码
    redis 本地安装
    spring boot(三)Junit 测试controller
    idea自动生成serialversionUID
    spring boot(二)热部署
    spring boot(一)创建项目
    Oracle中dual表的用途介绍
    Pass Data Between ASP.NET Pages
  • 原文地址:https://www.cnblogs.com/moy-1313133/p/9050629.html
Copyright © 2011-2022 走看看