基于JavaScript实现大文件上传后端代码实例


Posted in Javascript onAugust 18, 2020

这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数

下面直接贴代码吧,一些难懂的我大部分都加上注释了:

上传文件实体类:

看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。

基于JavaScript实现大文件上传后端代码实例

首先是文件数据接收逻辑,负责接收控件上传的文件块数据,然后写到服务器的文件中。控件已经提供了块的索引,大小,MD5和长度信息,我们可以根据需要来灵活进行处理,也可以将文件块的数据保存到分布式存储系统中。

基于JavaScript实现大文件上传后端代码实例

文件初始化部分

基于JavaScript实现大文件上传后端代码实例

第一步:获取RandomAccessFile,随机访问文件类的对象

第二步:调用RandomAccessFile的getChannel()方法,打开文件通道 FileChannel,这块逻辑可以优化,如果以后有分布式存储需求,可以改为分布式存储,减轻单台服务器的压力。

基于JavaScript实现大文件上传后端代码实例

第三步:获取当前是第几个分块,计算文件的最后偏移量

第四步:获取当前文件分块的字节数组,用于获取文件字节长度

第五步:使用文件通道FileChannel类的 map()方法创建直接字节缓冲器MappedByteBuffer

第六步:将分块的字节数组放入到当前位置的缓冲区内mappedByteBuffer.put(byte[] b);

第七步:释放缓冲区

第八步:检查文件是否全部完成上传

基于JavaScript实现大文件上传后端代码实例

文件夹扫描类

基于JavaScript实现大文件上传后端代码实例

存储路径生成类

基于JavaScript实现大文件上传后端代码实例

好了,到此就全部结束了,如果有疑问或批评,欢迎评论和私信,我们一起成长一起学习。

最后放一张实现的效果图

基于JavaScript实现大文件上传后端代码实例

后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
JavaScript中的null和undefined解析
Apr 14 Javascript
jQuery中:animated选择器用法实例
Dec 29 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
Sep 27 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
微信小程序的授权实现过程解析
Aug 02 Javascript
Vue组件间通信 Vuex的用法解析
Aug 05 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
javascript实现扫雷简易版
Aug 18 #Javascript
详解Vue的组件中data选项为什么必须是函数
Aug 17 #Javascript
Openlayers实现扩散的动态点(水纹效果)
Aug 17 #Javascript
openLayer4实现动态改变标注图标
Aug 17 #Javascript
openlayers4实现点动态扩散
Aug 17 #Javascript
Vue实现计算器计算效果
Aug 17 #Javascript
vue-model实现简易计算器
Aug 17 #Javascript
You might like
PHP静态新闻列表自动生成代码
2007/06/14 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
bootstrap响应式表格实例详解
2017/05/15 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
vue-router传参用法详解
2019/01/19 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
python读取中文txt文本的方法
2018/04/12 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
python matlab库简单用法讲解
2020/12/31 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
服装电子商务创业计划书
2014/01/30 职场文书
大课间活动实施方案
2014/03/06 职场文书
开幕式邀请函
2015/01/31 职场文书
门店店长岗位职责
2015/04/14 职场文书
信仰观后感
2015/06/03 职场文书
高三数学教学反思
2016/02/18 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python