• 大文件分片上传,断点续传,秒传


    前段时间做视频上传业务,通过网页上传视频到服务器。
    视频大小 小则几十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协议传输
  • 相关阅读:
    JavaScript ECMAScript版本介绍
    Webpack
    路由
    组件(重难点)
    npm包管理工具
    过滤器
    Vue实例生命周期
    数据双向绑定的原理
    MVC + MVVM
    vue事件修饰符
  • 原文地址:https://www.cnblogs.com/ygunoil/p/14167995.html
Copyright © 2020-2023  润新知