java上传大文件_Java超大文件上传解决办法

这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数

下面直接贴代码吧,一些难懂的我大部分都加上注释了:

上传文件实体类:

看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。

b5ab000a6d42c4a07fd76cb70f3c868a.png

首先是文件数据接收逻辑,负责接收控件上传的文件块数据,然后写到服务器的文件中。控件已经提供了块的索引,大小,MD5和长度信息,我们可以根据需要来灵活进行处理,也可以将文件块的数据保存到分布式存储系统中。

0880bcd2a3cbbd1839e688c12f351efa.png

文件初始化部分

f9564388dd712a9e20ceebf9d8ec06ef.png

第一步:获取RandomAccessFile,随机访问文件类的对象

第二步:调用RandomAccessFile的getChannel()方法,打开文件通道 FileChannel,这块逻辑可以优化,如果以后有分布式存储需求,可以改为分布式存储,减轻单台服务器的压力。

2e04f44024631cfbc3f42de757c0075c.png

第三步:获取当前是第几个分块,计算文件的最后偏移量

第四步:获取当前文件分块的字节数组,用于获取文件字节长度

第五步:使用文件通道FileChannel类的 map()方法创建直接字节缓冲器MappedByteBuffer

第六步:将分块的字节数组放入到当前位置的缓冲区内mappedByteBuffer.put(byte[] b);

第七步:释放缓冲区

第八步:检查文件是否全部完成上传

f8a2c11f45af88e1d3d60b71048105fe.png

文件夹扫描类

f9e169d40edc4a85a8fda0526abca5ca.png

存储路径生成类

7d89e68fbee98916e4cb3c1c5fd6c346.png

好了,到此就全部结束了,如果有疑问或批评,欢迎评论和私信,我们一起成长一起学习。

最后放一张实现的效果图

5a1d155131231c6e812898fe50390bf3.png

后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上传与下载/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!

作者 | 苏宓出品 | CSDN(ID:CSDNnews)2011 年 8 月 24 日,乔布斯表示「无法继续担任苹果首席执行官的这一天终于来临」,随后彼时的代理首席执行官蒂姆库克被任命为正式首席执行官,成为苹果公司的新任掌舵者…

阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练

简介: 阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练 应用高可用服务AHAS及故障演练AHAS Chaos 应用高可用服务(Application High Availability Service)是阿里云一款专注于提高应用及业务高可用的工具平台&#xff…

SAE助力「海底小纵队学英语」全面拥抱Serverless,节省25%以上成本

简介: 阿里云Serveless应用引擎SAE 具备免运维IaaS、按需使用、按量计费、低门槛服务应用上云,并且支持多种语言和高弹性能力等特点,刚好完美解决了客户长期以来运维复杂、资源利用率不高、开发迭代效率低等问题。 海底小纵队学英语隶属于成都…

低代码从技术走向产品,用友发布自动化设计工具“码前”

低代码以往只被作为技术被讨论,这一次,用友用低代码推出了自动化、一站式“需求产品设计”工具“码前”,帮助企业用户快速完成代码前的所有设计工作。 编辑 | 宋 慧 出品 | CSDN云计算 据《2021中国数字经济发展白皮书》统计,2020…

java连接access驱动_Java 连接Access

Java 连接Access第一次使用连接Access数据库, 记录一下遇到的坑Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc不使用WINDOW的建立数据源方法,直接在Java代码内部与Access数据库连接public void ConnectAccessFile() throws Exception{Class.forNa…

基于Serverless的云原生转型实践

简介: 新一代的技术架构是什么?如何变革?是很多互联网企业面临的问题。而云原生架构则是这个问题最好的答案,因为云原生架构对云计算服务方式与互联网架构进行整体性升级,深刻改变着整个商业世界的 IT 根基。 云原生架…

监控最佳实践--redis及业务接口

简介: 监控最佳实践--redis及业务接口 1. 背景 1.1 问题 2020-12-04,客户侧redis集群版监控DB0 CPU突增至100%,导致数据库无法正常服务,经排查客户侧业务上存在2M左右的大key导致DB0阻塞。并且客户侧使用的集群连接方式为默认pr…

汽车电气化竞争:获胜的途径

“如果您觉得一切都在掌握之中,那就是您的速度还不够快。”— Mario Andretti 多年来,汽车制造商不断面临对更大功率需求的挑战。在早期,汽车使用 6V 电池供电,直到 20 世纪 50 年代中期,汽车系统演变为 12V 电源&…

从MVC到云原生:CBU研发体系演进之路

简介: 本文对过去十年 CBU 在研发方式和技术架构上的探索做一个简要的回顾总结,以及对未来的展望。 前言 CBU作为集团内最早成立的几个BU之一,有着多年丰富的业务沉淀,而CBU的技术也伴随着业务一起不断地演进和成长着。从PC时代的…

你们关心十三香不香,我却关心背后的质检稳不稳

前些天,一年一度的科技圈春晚——苹果秋季新品发布会如约而至,iPhone13再度成为苹果产品发布会的绝对主角。 更强的CPU,更强的相机,更好的屏幕,更长的续航,更性感的配色,还有更低的价格——在全…

如何通过 Serverless 提高 Java 微服务治理效率?

简介: 在业务初期,因人手有限,想要快速开发并上线产品,很多团队使用单体的架构来开发。但是随着公司的发展,会不断往系统里面添加新的业务功能,系统越来越庞大,需求不断增加,越来越多…

每次都需要解释大量指令?使用 PolarDB-X 向量化引擎

简介: 向量化引擎为PolarDB-X的表达式计算带来了显著的性能提升。 介绍 PolarDB-X是阿里巴巴自研的云原生分布式数据库,采用了计算-存储分离的架构,其中计算节点承担着大量的表达式计算任务。这些表达式计算涉及到SQL执行的各个环节&#xff…

稳定性保障6步走:高可用系统大促作战指南!

简介: 年年有大促,大家对于大促稳定性保障这个词都不陌生,业务场景尽管各不相同,“套路”往往殊路同归,全链路压测、容量评估、限流、紧急预案等,来来去去总少不了那么几板斧。跳出这些“套路”&#xff0c…

观测云品牌正式亮相,携手通信院共推国内可观测性概念与技术发展!

2021年9月17日,由中国信息通信研究院、中国通信标准化协会联合主办的“2021 OSCAR 开源产业大会”在北京中关村拉开序幕。会上正式发布了《开源治理标准与评估结果》《开源法则》等多项重要成果,而由通信院主导、驻云科技参与制定的《中国可观测性标准》…

闲鱼如何建设技术舆情治理体系 (多图多代码)

简介: 从日志、监控、性能检测几个方面建设了有日志可查、有数据可依的排查体系 现状和问题 闲鱼的舆情治理,依托阿里集团的设施建设,有以下能力: 崩溃异常、性能在线聚合查询;本地日志:TLog;在…

全球企业KVM开源贡献榜发布,腾讯云、华为、阿里巴巴等入围

9月16日晚,在全球虚拟化顶级技术峰会 KVM Forum 上,2021年度全球企业 KVM 开源贡献榜正式发布,华为、腾讯云、阿里巴巴等中国公司纷纷入围。其中,腾讯云更是连续第五年入围,成为唯一取得这一成就的中国企业。 据了解&a…

使用MQTT与函数计算做热力图的实践

简介: 在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTTFCAPI Gateway的方式参考优化来实现。 前言 最近几年,我们在一些商场、图书馆、机场或港口环境里,经常可以看到一些机器人在转…

Google 宣布推出隐私计算核心服务;Amazon Managed Grafana正式可用……

NEWS本周新闻回顾Google 宣布推出隐私计算核心服务今年 5 月 Google I/O 开发者大会发布 Android 12 的同时,宣布了隐私计算核心(Private Compute Core)。这是一项开源计划,提供了一个沙盒式的安全环境,将智能回复、实…

谈身份管理之基础篇 - 保障云上安全,从[规范账号使用]开始

简介: 身份和密钥的管理,是企业上云的重中之重;每年国内外都有因为身份和密钥的管理不善,或泄露,或误操作导致严重的生产事故或者数据泄露。本期小编将重点聊聊云上身份的那些值得关注的事儿。 引言 2021年初&#xf…

开课啦 dubbo-go 微服务升级实战

简介: 杭州开课啦教育科技有限公司是一家致力于为中小学生提供学习辅导的在线教育公司,目前公司后端服务基础设施主要依托于阿里云原生,其中包含计算、网络、存储以及 Kubernetes 服务。 技术选型背景 2020 年是开课啦公司发展壮大的一年&am…