博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web大文件断点续传,快来看看吧!
阅读量:4291 次
发布时间:2019-05-27

本文共 1012 字,大约阅读时间需要 3 分钟。

相信很多像我一样的好学的工程师对web的大文件的断点续传都有点儿兴趣,那么今天我们一起来动手实现它.

Web大文件断点续传,快来看看吧!

作为开始,我们先简单了解一下为什么要做断点续传:

传统方式的缺点:

  • 大文件上传往往比较耗时,如果采用传统的方式,势必速度慢,用户体验差.

  • 大文件上传过程中,由于种种原因,时常导致上传中断,失败.用户已经成功上传的部分将需要再次重新上传.

  • 上传大文件时,将导致页面卡顿,体验差

  • 不能充分发挥系统的性能.主要是单线程.

断点续传将解决以上问题.

接下来, 我们了解一下在web中实现大文件上传的断点续传的原理.

基本原理:

断点续传可以分为两部分:断点和续传。断点是在上传过程中,将一个将要上传的文件分成了多个部分,然后使用多个并发线程进行多个部分的上传, 当某个时间点,由于某种原因, 任务被暂停了, 此时上传暂停的位置就是断点了。此时已经成功上传的部分将会被服务器保存. 续传就是当用户再次继续上传之前未完成的文件时, 系统不会重新上传之前已经成功上传的部分,而是直接从之前暂停的部分开始上传.

断点续传的过程:

  1. 在准备上传文件之前,先将大文件分成相同大小的文件块并编号.

  2. 然后开启多个线程同时上传多个文件块到服务器.

  3. 在发送每个文件块之前,先向服务器查询,该文件块是否已经上传过

  4. 如果该文件块已经成功上传,则跳过该文件块的上传.

  5. 如果该文件块未上传或者未完全上传,则上传该文件块.

  6. 当客户端上传完所有的文件块之后,通知服务器端合并所有的文件块

在了解了基本原理之后, 我们使用使用javaweb来实现它.

提前准备:

  • WebUploader ---- 提供断点续传的前端技术.

  • jquery----WebUploader依赖于它

  • Commons-fileupload----提供文件上传的后端技术

  • Commons-io----Commons-fileupload依赖于它

实现:

由于头条的编辑器不支持插入代码,所以下面小编就以图片形式贴出核心代码.如果觉得读者不是很舒服,可以留下邮箱,小编会及时将源码发送给读者.

upload.jsp

导入相关文件:

Web大文件断点续传,快来看看吧!

html标签:

Web大文件断点续传,快来看看吧!核心js代码:

Web大文件断点续传,快来看看吧!

Web大文件断点续传,快来看看吧!
Web大文件断点续传,快来看看吧!

Web大文件断点续传,快来看看吧!

Web大文件断点续传,快来看看吧!
Web大文件断点续传,快来看看吧!

UploadServlet.java:

Web大文件断点续传,快来看看吧!

Web大文件断点续传,快来看看吧!

UploadActionServlet.java:

Web大文件断点续传,快来看看吧!

Web大文件断点续传,快来看看吧!
Web大文件断点续传,快来看看吧!

END...

如果您看到了这里,那么希望您留下您对文章的任何见解看法.

转载地址:http://hvggi.baihongyu.com/

你可能感兴趣的文章
Elasticsearch-近似搜索
查看>>
netty源码分析之-Future、ChannelFuture与ChannelPromise详解(3)
查看>>
redis主从集群的搭建
查看>>
redis cluster集群搭建与深入分析(1)
查看>>
netty源码分析之-引导详解(4)
查看>>
redis cluster节点的添加与删除(2)
查看>>
nginx+redis+tomcat三级缓存架构讲解
查看>>
Reactor模式详解
查看>>
基于OpenRestry部署nginx+lua实现流量定向分发
查看>>
netty源码分析之-服务端启动核心源码分析(5)
查看>>
Storm并行度和流分组详解
查看>>
缓存数据预热详解
查看>>
热点数据降级详解(storm+nginx+lua)
查看>>
加载更多功能实现
查看>>
React相关Dom约束性和非约束性操作
查看>>
Hystrix高可用架构介绍
查看>>
netty源码分析之-SimpleChannelInboundHandler与ChannelInboundHandlerAdapter详解(6)
查看>>
netty源码分析之-开发过程中重要事项分析(7)
查看>>
Sublime Text3插件详解
查看>>
netty源码分析之-ByteBuf详解(8)
查看>>