支持不限制大小,大文件分段批量上传功能(不受nginx /apache 上传大小限制)

大文件分段批量上传功能 (Large File Chunked Upload)

项目简介

这是一个实现大文件分段批量上传功能的示例项目。该项目使用 Spring Boot 框架,支持将大文件分割为多个小块进行上传,并在服务器端进行合并。

技术重点是前端使用了html 的: file.size 、file.slice 、xhr progress 事件.

以及在不打包vue情况下使用vue.

后端使用spring boot .

项目背景

nginx/apache 等服务默认不支持大文件上传,虽然支持配置,但是如果上传文件过大会长期占用一个长连接以及网络带宽,所以在单点form post upload 下大部分项目都会做文件上传限制,所以就有这个分断上传一个功能

网络上也已经也有很多现成的成功的例子以及文章,这里仅做一个另一种解决方法,仅供参考.

功能特性

  • 大文件分片上传:将大文件分成多个小块进行上传,避免一次性上传大文件导致的内存溢出或超时问题。
  • 文件合并:服务器端接收所有分片后,自动将分片合并为完整文件。
  • 上传进度跟踪:支持上传进度的实时跟踪。
  • 断点续传:支持上传中断后从断点继续上传。
  • 多文件批量上传:支持多个文件同时上传。

技术栈

  • Java 11+
  • Spring Boot 2.x
  • Maven
  • Vue.js (前端示例)

安装与使用

后端

  1. 确保已安装 JDK 11+ 和 Maven。

  2. 克隆项目到本地:

    bash 复制代码
    git clone https://github.com/pinke/upload-pro.git
  3. 进入项目目录并运行:

    bash 复制代码
    cd upload-pro
    mvn spring-boot:run
  4. 后端服务将启动在 http://localhost:8080/。

前端

  1. 打开 http://localhost:8080/static/vue.html 文件。
  2. 在浏览器中打开该文件,即可使用上传功能。

API 文档

上传分片文件

  • URL : /api/upload
  • 方法 : POST
  • 请求体 : 包含文件分片的 multipart/form-data。

合并文件

  • URL : /api/merge
  • 方法 : POST
  • 请求参数: 文件标识符和分片总数。
相关推荐
荣码6 小时前
从0到1搭一个生产级RAG系统:串联前面21篇所有知识
java·python
xuxigifxfh6 小时前
牛客:HJ170 01序列
java·开发语言·算法·华为机考
code_slave(码畜)6 小时前
微服务架构落地:消息队列架构设计(下篇)——消息堆积、死信治理与集群监控告警实战
spring boot·spring cloud·微服务·云原生·中间件·架构
野生技术架构师7 小时前
牛客网互联网大厂 Java 高频面试题整理(持续更新)
java·开发语言
小师兄吃牛肉7 小时前
Java语法 | 多重循环
java·开发语言·python
Han.miracle7 小时前
MySQL InnoDB:MVCC、记录锁、间隙锁、二级索引MVCC底层原理
java·开发语言
不停喝水8 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
y1su8 小时前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法
霸道流氓气质8 小时前
多Agent通信机制与协议设计完全指南:从FIPA-ACL到A2A/MCP的Java生产级实战
java·开发语言