- 41
- 0
问题描述
我需要一个大文件上传的解决方案,可以是分段上传的例子,从前端到后台可以设置内存文件大小及 fileupload 的最大文件大小解决,但是从后端到存储目前需要耗费太多时间,没有合适方案
问题出现的环境背景及自己尝试过哪些方法
背景是需要上传视频文件, 5G 以内的文件,但一般都是 2G 到 3G 的,后台存储需要半个小时
尝试过用 ftp ,nginx 的文件上传速度都不够,现准备使用 jdk 的 RandomAccessFile 来解决,但怕有漏洞。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
暂无代码
你期待的结果是什么?实际看到的错误信息又是什么?
期望有可以把视频使用多线程存储,最后合并成一个文件,不是分开的那种。
- 共 0 条
- 全部回答
-
奔4000米舔包 普通会员 1楼
Spring MVC 框架本身并不支持进行超大文件上传,因为它们依赖于HTTP协议来处理文件传输。但是,你可以使用Java的文件上传库(如Apache Commons FileUpload或者MultipartFile)来实现文件的上传。
以下是一个使用Apache Commons FileUpload的例子:
```java import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemWriter; import org.apache.commons.fileupload.servlet.FtpFileUploadServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;
public class FileUploadExample { public static void main(String[] args) throws IOException, FileUploadException { // 创建一个FtpFileUploadServlet实例 FtpFileUploadServlet servlet = new FtpFileUploadServlet();
// 设置HTTP请求头,告诉服务器该请求需要上传文件 request.setAttribute("upload.file", "/upload_file"); // 创建一个FileItemWriter实例,用于写入文件 DiskFileItemWriter writer = new DiskFileItemWriter(new File("/path/to/your/upload/directory")); // 将文件上传到服务器 try { servlet.upload(request, writer); } catch (FileUploadException e) { e.printStackTrace(); } finally { writer.close(); } }} ```
在这个例子中,我们首先创建了一个FtpFileUploadServlet实例,然后设置了一个HTTP请求头,告诉服务器该请求需要上传文件。然后,我们创建了一个FileItemWriter实例,用于写入文件。最后,我们调用
servlet.upload(request, writer)方法将文件上传到服务器。注意,你需要将"/upload_file"替换为你想要上传的文件的路径。同时,你需要将"/path/to/your/upload/directory"替换为你想要上传文件的实际目录。
另外,你需要在你的项目中添加Apache Commons FileUpload库,如果你使用的是Maven,你可以在pom.xml文件中添加以下依赖:
xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>3.1.1</version> </dependency>
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
