zoukankan      html  css  js  c++  java
  • 大文件分片上传,断点续传,秒传

    前段时间做视频上传业务,通过网页上传视频到服务器。
    视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃;
     
    解决方案:
    1,修改服务端上传的限制配置;Nginx 以及 PHP 的上传文件限制 不宜过大,一般5M 左右为好;
    2,大文件分片,一片一片的传到服务端,再由服务端合并。这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端限制在4M即可。
     

    关键部分

    • 前端用file.slice()分块
    • 前端用FileReader获取每一分块的md5值
    • 前端上传每一分块前,都会去服务器校验分片是否已上传,以此来支持断点续传
    • 后端用MultipartFile接受分块文件
    • 后端用FileOutputStream拼装分块文件
      • 500M以下的用http协议传输(网上一搜大把的)
      • 500M以上1G以下的用http协议分块或者ftp协议传输
      • 1G以上的只能用ftp协议传输
  • 相关阅读:
    c 语言练习__去掉多余的空白字符_修正
    c 语言练习__求到N的阶乘的和。
    <<c 和指针 >> 部分笔记。
    AsciiDoc Markup Syntax Summary
    gdb 基本命令
    Ubuntu开启防火墙
    转载 jre精简
    windows 下指定jre运行java程序批处理指令
    虚拟机vmware的NAT网络
    liunx 端口权限
  • 原文地址:https://www.cnblogs.com/ygunoil/p/14167995.html
Copyright © 2011-2022 走看看