java web文件夹_JAVA WEB项目文件夹上传下载解决方案
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数
下面直接贴代码吧,一些难懂的我大部分都加上注释了:
上传文件实体类:
看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。
首先是文件数据接收逻辑,负责接收控件上传的文件块数据,然后写到服务器的文件中。控件已经提供了块的索引,大小,MD5和长度信息,我们可以根据需要来灵活进行处理,也可以将文件块的数据保存到分布式存储系统中。
文件初始化部分
第一步:获取RandomAccessFile,随机访问文件类的对象
第二步:调用RandomAccessFile的getChannel()方法,打开文件通道 FileChannel,这块逻辑可以优化,如果以后有分布式存储需求,可以改为分布式存储,减轻单台服务器的压力。
第三步:获取当前是第几个分块,计算文件的最后偏移量
第四步:获取当前文件分块的字节数组,用于获取文件字节长度
第五步:使用文件通道FileChannel类的 map()方法创建直接字节缓冲器 MappedByteBuffer
第六步:将分块的字节数组放入到当前位置的缓冲区内 mappedByteBuffer.put(byte[] b);
第七步:释放缓冲区
第八步:检查文件是否全部完成上传
文件夹扫描类
存储路径生成类
好了,到此就全部结束了,如果有疑问或批评,欢迎评论和私信,我们一起成长一起学习。
最后放一张实现的效果图
后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上传与下载/
欢迎入群一起讨论“374992201”
java web文件夹_JAVA WEB项目文件夹上传下载解决方案相关推荐
- java断点上传下载_java实现多线程断点续传,上传下载 分享
程序采用的ftp工具, apache 的 commons-net-ftp-ftpclient package com.ftp; import java.io.File; import java.io. ...
- B/S文件上传下载解决方案
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- VUE 项目大文件上传下载解决方案
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- java scp 文件夹_利用scp 远程上传下载文件/文件夹
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...
- linux上下载文件夹命令,linux命令(上传下载文件)
1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101 ...
- java 图片回显_java实现Simditor图片上传七牛云并回显
首先呢,我们有这样一个需求: 当图片上传Simditor时,将其保存到七牛云上,然后并回显在我们的Simditor中. 首先,需要我们有一个七牛云帐号,并且配置Simditor富文本编辑器. 其次,我 ...
- java公众号图片上传_java微信公众号上传下载图片,springmvc demo
[实例简介] 微信上传下项目使用说明: 1.本项目适合学习springmvc学者(springmvc demo), url(http://localhost:8082/com.demo.weixin/ ...
- java修改文件的大小限制_Struts2修改上传文件大小限制方法解析
首先struts上传最大大小由两个地方决定. struts.multipart.maxSize决定整个post的form最大是多大,所以这个限制是最初的.默认大小是接近2M,在struts的defau ...
最新文章
- js中的DOM对象和jQuery对象的比较
- 【泛型】Generic 参数化类型 类型转换
- 全国首家工资总额负面清单管理试点企业获批
- python中数字和字符串可以直接相加_用c语言或者python将文件中特定字符串后面的数字相加...
- linux转为root用户_[R] 展示linux文件树 - collapsibleTree
- Visual Studio 2015 RC中的ASP.NET新特性和问题修正
- 人行强拒规则拒绝评分人群
- matlab monte carlo,Monte Carlo Simulation
- Java NIO和IO的主要区别
- linux mysql 修改root密码_MySQL忘了root密码,如何修改?
- 基于javaweb+jsp的健康体检信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
- linux下scrt依赖包libssl1.0.0解决方法
- 绿联串口线linux驱动下载,绿联usb转串口驱动
- 【运营】关于A/BTest的简单介绍
- select()函数的作用
- 制作我自己的桌面小机器人Zbot(遇到的问题总结)
- 计算机架构设计的 8 个伟大思想
- 2021海口高考调研成绩查询,2021年海口市高考调研测试附答案.doc
- ZZULI-2019年3月份月赛(个人赛)问题 I: 小P找座位 思维or矩阵快速幂
- 基于Springboot实现OA办公系统