基于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 相关文章推荐
jquery利用ajax调用后台方法实例
Aug 23 Javascript
JS之Date对象和获取系统当前时间详解
Jan 13 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
ECMAScript 5中的属性描述符详解
Mar 02 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
JS非行间样式获取函数的实例代码
Jun 05 Javascript
layer.alert回调函数执行关闭弹窗的实例
Sep 11 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
Jul 20 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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
图书管理程序(三)
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
php中hashtable实现示例分享
2014/02/13 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
python爬虫请求头设置代码
2020/07/28 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
自动化专业个人求职信范文
2013/12/30 职场文书
《草原》教学反思
2014/02/15 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
2015中秋祝酒词
2015/08/12 职场文书
接收函
2019/04/22 职场文书