• 大文件上传


    上传基本上是这样的:

    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

  • 相关阅读:
    程序员常用字体(vs2008字体修改方案)
    Struts 与 Velocity 的集成
    CheckBox Button
    WINDOWS MOBILE winnet开发心得
    Change background color of a UIAlertView
    Windows Mobile 自定义控件(一)
    ZNLog
    获取磁盘空间大小
    iPhone开发:UIImage的一系列操作
    Windows Mobile 自定义控件(二)
  • 原文地址:https://www.cnblogs.com/moy-1313133/p/9050629.html
Copyright © 2020-2023  润新知