如何使用spring传输大于100mb的文件

时间:2010-06-16 05:26:45

标签: spring file spring-mvc

如何使用spring mvc传输大于100mb的文件。

我已经通过帖子how to handle 100mb uploads for users,告诉我使用ftp api。但是想知道春天的另类选择。

1 个答案:

答案 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插件)等前端工具结合使用,您可以创建一个很好的界面来跟踪上传的进度,并让您能够提供反馈给你的用户。