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

  • 相关阅读:
    CSS3---用户界面
    CSS3---媒体查询与响应式布局
    HDU 5285 wyh2000 and pupil
    POJ 2488 A Knight's Journey
    POJ 1067 取石子游戏
    POJ 2777 Count Color
    POJ 3259 Wormholes
    Project Euler 26 Reciprocal cycles
    POJ 2104 K-th Number
    POJ 1013 Counterfeit Dollar
  • 原文地址:https://www.cnblogs.com/moy-1313133/p/9050629.html
Copyright © 2011-2022 走看看