基于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 相关文章推荐
js变量作用域及可访问性的探讨
Nov 23 Javascript
学习js所必须要知道的一些
Mar 07 Javascript
详解JavaScript中undefined与null的区别
Mar 29 Javascript
jquery按回车键实现表单提交的简单实例
May 25 Javascript
JS Array创建及concat()split()slice()的使用方法
Jun 03 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
javaScript封装的各种写法
Aug 14 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
在Angular中使用JWT认证方法示例
Sep 10 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
js调用网络摄像头的方法
Dec 05 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基础知识:类与对象(5) static
2006/12/13 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
解读! Python在人工智能中的作用
2017/11/14 Python
Python如何生成树形图案
2018/01/03 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
详解python中list的使用
2019/03/15 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
Django封装交互接口代码
2020/07/12 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
车间操作工岗位职责
2013/12/19 职场文书
投标担保书范文
2014/04/02 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
班主任工作总结范文
2015/08/13 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python