JAVA HTTP大文件断点续传上传插件

JAVA HTTP大文件断点续传上传插件,大文件上传解决方案-支持断点续传的文件上传插件(转),文件的上传和下载,JAVA实现HTTP的上传与下载,JAVA大文件分片上传/多线程上传示例,JAVA上传文件夹到OSS,JAVA WEB项目大文件上传下载解决方案,JAVA WEB 能够实现整个文件夹的上传下载吗?,大文件切片上传+断点续传解决方案-前后端实现,上传大文件(100G)的解决方案,JAVAWEB项目中的文件上传下载功能的实现,后端用的JAVA,JSP,SpringBoot,前端用了JSP,VUE2,VUE3,React,需要实现大文件的上传和下载。

之前在网上也搜索过相关的资料,论坛上也有网友交流过,也加过一些QQ群和微信群,但是结果都不太令人满意。网上的文章很多内容是重复的,大部分都只是讲前端,几乎所有的方案都是讲的用HTML5的API,但是这个方案不能兼容IE。公司这边的话需求是需要一个成熟稳定的商业解决方案,最好是能够提供源代码。公司这边有自主化的需求,

论坛的话里面回复的人也是非常少,要么就是答非所问,要么就是随便弄点代码,群里面的话经常是发个消息半天没人回复。像这些开源的方案公司是根本就不敢使用的,客户那边也不用说了,他们对这块还是有要求的,需要提供技术支持的。

主要的一点就是要求兼容性要好,除了需要支持Chrome还需要支持IE,因为用户那边有些系统还在IE下面跑。另外一点就是稳定性要好。

原理到是不复杂,但是网上几乎都没有提供完整源代码。

客户是北京那边一家国企,做航空领域的信息化相关的产品和项目。技术栈也比较长,JAVA,JSP,VUE都用到了。实际上客户是比较在意两点。

要求支持大文件上传和下载,上传支持断点续传,下载支持断点续传,断点续传均支持刷新续传,关闭浏览器,重启浏览器,关闭电脑,重启电脑后仍然可以续传。

提供前端,后端,控件源代码,提供长期技术支持,提供升级产品维护服务

我们主要做政府项目,客户也都是政府单位,所以对技术支持,服务这块要求比较高。

提供手机,微信,QQ,企业微信,电子邮箱等联系方式。

需要支持包含IE在内的所有浏览器,需要支持信创国产化环境,比如银河麒麟,中标麒麟,龙芯,统信等,

需要支持国产数据库,达梦数据库,人大金仓数据库等。

需要支持加密传输,端到端的加密传输,支持国密SM4,上传过程加密,下载过程加密,客户单位涉密了。

视频教程:https://www.ixigua.com/7227314770696012322

导入项目:
导入到Eclipse:导入项目
导入到IDEA:导入项目
springboot统一配置:springboot-配置

下载示例:

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文件

相关参考:

文件保存位置

源码工程文档:泽优上传下载-源码版-工程文档.pdf

源码报价单:泽优上传下载-源码版-2024.pdf

OEM版报价单:泽优上传下载-OEM版-2024.pdf

产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
授权生成器:up6-lic-app.zip

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaHttpClient库可以用于实现HTTP文件上传,而断点续传则是通过在请求头中添加"Range"字段来实现的。下面是一个简单的Java代码示例,演示了如何使用HttpClient库实现HTTP文件断点续传上传: ```java import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.FileEntity; import org.apache.http.impl.client.DefaultHttpClient; public class HttpResumeUpload { public static void main(String[] args) throws IOException { String url = "http://example.com/upload"; String filePath = "/path/to/file"; int bufferSize = 1024 * 1024; // 每次上传的字节数 RandomAccessFile file = new RandomAccessFile(filePath, "r"); long fileSize = file.length(); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); post.setHeader("Range", String.format("bytes=%d-%d", 0, bufferSize - 1)); // 设置上传起始位置 post.setHeader("Content-Length", String.valueOf(bufferSize)); // 设置上传数据长度 HttpEntity entity = new FileEntity(file.getFD(), 0, bufferSize); post.setEntity(entity); HttpResponse response = client.execute(post); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 206) { // 部分上传成功 InputStream inputStream = response.getEntity().getContent(); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = inputStream.read(buffer)) != -1) { // 处理服务器返回的响应数据 } post.setHeader("Range", String.format("bytes=%d-%d", bufferSize, fileSize - 1)); // 设置下一次上传起始位置 post.setHeader("Content-Length", String.valueOf(fileSize - bufferSize)); // 设置下一次上传数据长度 entity = new FileEntity(file.getFD(), bufferSize, fileSize - bufferSize); post.setEntity(entity); response = client.execute(post); statusCode = response.getStatusLine().getStatusCode(); // 处理服务器返回的响应数据 } else if (statusCode == 200) { // 全部上传成功 // 处理服务器返回的响应数据 } file.close(); client.getConnectionManager().shutdown(); } } ``` 在上面的代码中,我们首先打开待上传文件,然后通过HttpClient库发送一个HTTP POST请求,请求的内容是文件的一部分数据。如果服务器返回206状态码,表示部分数据上传成功,我们就从服务器返回的响应中读取剩下的数据,然后设置下一次上传的起始位置和长度,再次发送HTTP POST请求。如果服务器返回200状态码,表示全部数据上传成功,我们就可以关闭文件HTTP客户端了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值