基于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 相关文章推荐
Javascript attachEvent传递参数的办法
Dec 14 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
用jQuery中的ajax分页实现代码
Sep 20 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
JS截取字符串实例详解
Nov 24 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
vue.js的简单自动求和计算实例
Nov 08 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
用PHP开发GUI
2006/10/09 PHP
模仿OSO的论坛(四)
2006/10/09 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
工作评语大全
2014/04/26 职场文书
组织鉴定材料
2014/06/02 职场文书
工作求职自荐信
2014/06/13 职场文书
安全承诺书格式范本
2015/04/28 职场文书
校运会广播稿
2015/08/19 职场文书
七年级生物教学反思
2016/02/20 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
使用Python解决图表与画布的间距问题
2022/04/11 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers