如何使用spring mvc传输大于100mb的文件。
我已经通过帖子how to handle 100mb uploads for users,告诉我使用ftp api。但是想知道春天的另类选择。
答案 0 :(得分:0)
您可以通过简单的搜索找到有关Spring对多部分文件上传的支持的文档,例如,可以找到与Spring 3.2.8相关的多部分文件的文档here
您需要为项目定义多部分解析程序,请参阅下面的示例,以便能够处理多部分文件。
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="100000"/>
</bean>
一旦您为MultipartFile
支持配置了应用程序,您仍需要执行一些操作(例如,确保您将表单提交为multipart
表单,例如)。
<form method="post" action="/form" enctype="multipart/form-data">
<input type="file" name="file"/>
...
</form>
提交表单后,您应该能够在控制器中处理它,类似于上面文档中给出的示例:
@RequestMapping(value = "/form", method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
// store the bytes somewhere
return "redirect:uploadSuccess";
} else {
return "redirect:uploadFailure";
}
}
在这里,您应该能够进行字节级和流级操作,以管理用于更大文件上传的内存,以及您需要执行的与业务逻辑相关的任何其他操作。
如果您将此与BlueImp&#39; fileUpload(jQuery插件)等前端工具结合使用,您可以创建一个很好的界面来跟踪上传的进度,并让您能够提供反馈给你的用户。