百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

Java实现文件上传和下载的方法详解

ninehua 2025-02-13 13:33 20 浏览

Java实现文件上传和下载的方法详解,Java实现文件上传和下载解决方案,Java实现文件上传和下载思路,Java实现文件上传和下载源码,Java实现文件上传和下载实例,Java实现文件分块上传和下载,Java实现文件分片上传和下载,Java实现文件切片上传和下载,Java实现文件加密上传和下载,Java实现文件夹上传和下载,


后端用的JAVA,JSP,SpringBoot,前端用了JSP,VUE2,VUE3,React,需要实现大文件的上传和下载。

要求支持文件夹的上传下载,支持断点续传,支持加密传输,端到端的加密传输,上传过程中数据加密,下载过程中数据加密,下载后自动解密,上传支持加密存储,

文件夹下载支持以非打包方式下载,用户上传的文件夹包含1万个文件,文件有大有小,大的可能1G~10G,如果打包下载的话,服务器的磁盘空间不够。

文件夹上传支持保存层级结构,层级结构信息保存到数据库中,

文件夹下载支持保留层级结构,上传的是什么结构,下载同样是什么结构

需要支持包含IE在内的全部浏览器

终端需要支持Windows,macOS,Linux,信创国产化环境,中标麒麟,银河麒麟,统信UOS,龙芯,华为

功能需要支持10G,50G,100G大文件上传和断点续传,刷新续传,重启续传

支持超大文件分片,分段,分块,分割上传下载,断点续传

支持加密上传,下载加密,端到端加密,国密SM4加密算法,数据加密传输,传输过程中要保证数据是加密的。

支持文件夹上传,下载断点续传,支持文件夹层级结构,层级结构信息保存到数据库,下载的时候同样保留层级结构。

网上一般的做法都是用的HTML5的API,也就是chrome提供的API,能够满足基本需求,但是还是有痛点,chrome限制死了,固定死了无法扩展,每个域名只允许5个TCP连接,导致了速度有上限,你也无法修改和扩展。然后就是浏览器也只能用chrome,用户用了IE就不行了,用户现有的系统跑在IE上,也不能换。

进度信息容易丢失,用户关闭网页,刷新网页,关闭浏览器,重启浏览器,关闭电脑,重启电脑后,进度信息都会丢失,无解,没办法。扩展性还是差了点。

传大文件,超大文件,文件数量多的话,前端就卡,网页反应慢,容易死,崩溃,在配置较差的电脑或者配置一般的电脑上这个痛点体现的非常明显。

下载,网上找到的资料一般都是讲上传的,很少讲下载的。

对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传

从上传的效率来看,利用多线程并发上传能够达到最大效率。

断点续传,就是在文件上传的过程中发生了中断,人为因素(暂停)或者不可抗力(断网或者网络差)导致了文件上传到一半失败了。然后在环境恢复的时候,重新上传该文件,而不至于是从新开始上传的。

断点续传的功能是基于分块上传来实现的,把一个大文件分成很多个小块,服务端能够把每个上传成功的分块都落地下来,客户端在上传文件开始时调用接口快速验证,条件选择跳过某个分块。

实现原理,就是在每个文件上传前,就获取到文件MD5取值,在上传文件前调用接口,如果获取的文件状态是未完成,则返回所有的还没上传的分块的编号,然后前端进行条件筛算出哪些没上传的分块,然后进行上传。

当接收到文件块后就可以直接写入到服务器的文件中。


导入项目:
导入到Eclipse:

http://www.ncmem.com/doc/view.aspx?id=
9da9c7c2b91b40b7b09768eeb282e647

导入到IDEA:
http://www.ncmem.com/doc/view.aspx?id=
9fee385dfc0742448b56679420f22162

springboot统一配置:
http://www.ncmem.com/doc/view.aspx?id=
7768eec9284b48e3abe08f032f554ea2



下载示例:

https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/




工程



NOSQL

NOSQL示例不需要任何配置,可以直接访问测试



创建数据表

选择对应的数据表脚本,这里以SQL为例




修改数据库连接信息


访问页面进行测试



文件存储路径

up6/upload/年/月/日/guid/filename






相关问题:

1.javax.servlet.http.HttpServlet错误

2.项目无法发布到tomcat
3.md5计算完毕后卡住
4.服务器找不到config.json文件

相关参考:

文件保存位置


源码工程文档:
https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

源码报价单:
https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl



OEM版报价单:
https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

产品源代码:
https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

授权生成器:
https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1

相关推荐

让Mac也能读取Android设备文件(mac系统能读取win的文件么)

由于苹果的iOS和谷歌的Android系统属于竞争关系,因此苹果的电脑系统MacOSX并不支持MTP协议,这就使得通过USB将Android设备连接到Mac电脑上无法识别,更别说读取里面的文件了。...

抛弃Windows吧!谷歌推免费Chrome系统,一个U盘就搞定

在目前的个人电脑上,最主流的系统当然是Windows,不过除了Windows之外,我们也可以选择购买苹果的电脑,使用苹果的MacOS系统。不过除了苹果和微软的系统之外,实际上谷歌也有自己用于个人电脑...

安卓版Apple Music应用正式上架Google Play

IT之家讯11月11日消息,苹果今天正式推出了安卓版AppleMusic应用(测试版),用户可在谷歌应用商店GooglePlay进行下载。AppleMusic最初只提供给Mac、iPhone和...

Mac 基于HTTP方式访问下载共享文件,配置共享服务器

方法一:使用Python的SimpleHTTPServer进行局域网文件共享Mac自带Python,所以不需要安装其他软件,一条命令即可1):进入需要共享的文件夹,如Public文件夹cd/Us...

谷歌 Gmail 现可设置为 iOS 14/iPadOS 14 默认邮件应用

IT之家9月22日消息据外媒MacRumors报道,苹果iOS14与iPadOS14允许用户将第三方应用设置为iPhone和iPad的默认浏览器应用。目前,用户还可以将第三方...

终于免费了!谷歌地球专业版下载(谷歌地球专业版多少钱)

IT之家(www.ithome.com):终于免费了!谷歌地球专业版下载IT之家讯1月31日消息,谷歌地球专业版GoogleEarthPro现在完全免费了。在此之前,要使用这款专业版的谷歌地球需要...

谷歌计划将于11月发布64位Mac版Chrome

投稿by:hnn072来源:威锋网PostTime:2014-09-1523:51:55以下为文章全文:威锋网9月15日消息,日前,谷歌公司在官方博客中正式宣布,谷歌将在今年11月发布的...

Google首次推出beta版的64位Mac Chrome浏览器

在宣布Windows版的64位Chrome进入稳定版(Chrome37)2天之后,Google刚刚又发布38版的Chromebeta版,除了增加新的用户档案切换界面并引入G...

YouTube应用下载全攻略:安卓、iOS及视频下载指南

#哪些网站帮你打开了新世界的大门?#YouTube是全球最大的视频分享平台,拥有数十亿用户。它允许用户上传、分享和观看视频,涵盖娱乐、教育、新闻、音乐、博客、游戏等各类视频。通常,您可以使用You...

MaterialDesign来袭!iOS谷歌浏览器更新!

今日,谷歌发布了最新的iOS版Chrome浏览器应用升级,在新版本中该应用添加了最新的MaterialDesign界面,并增加了在iOS设备和Mac中快速无缝切换浏览内容的Handoff特性支持。最...

谷歌为Canary/Dev分支Mac版Chrome浏览器64位支持

【巴士速递·移动情报站】上周,谷歌为Windows7和8系统用户推出了64位版本的Chrome浏览器Beta测试版。现在,谷歌悄悄的为Canary和Dev分支Mac版Chrome浏览器增加了64位支...

谷歌发布64位Chrome for Mac 首个测试版

投稿by:水木之向来源:威锋网PostTime:2014-08-2921:52:52以下为文章全文:威锋网8月29日消息,在发布64位ChromeforWindows之后,谷歌日...

Google Stadia首发支持设备中确认有Pixel 4和Pixel 2系列

2019-10-3110:20谷歌今天宣布扩充GoogleStadia的首发支持设备规模,继Pixel3系列、Pixel3a系列之外还添加了Pixel4系列和Pixel2系列四款机型。据...

64位谷歌浏览器Chrome 11月登陆苹果OS X

IT之家(www.ithome.com):64位谷歌浏览器Chrome11月登陆苹果OSX谷歌将于11月正式发布非beta版的、苹果OSX系统的64位谷歌浏览器,谷歌于一个月前曾推出beta版的...

外媒:谷歌推出了搭载苹果M1芯片Mac的Chrome版本

据外媒TheVerge消息,谷歌日前为苹果的ArmMacs发布了Chrome的本地版本。不过该版本原本是在周二开始推出,但由于意外崩溃而暂停了。Chrome产品经理MarkChang表示,谷歌计...