2010-06-16 27 views
0

如何使用spring mvc傳輸大於100mb的文件。如何使用spring傳輸大於100mb的文件

我已經通過帖子how to handle 100mb uploads for users,告訴使用ftp api。但想知道春天的另一種選擇。

+0

Spring MVC是如何與這個問題相關的?它不是FTP的替代品。 – skaffman 2010-06-16 07:29:27

+0

您是否嘗試使用基於Web的表單從客戶端上傳到服務器? – JoseK 2010-06-16 09:44:28

+0

JoseK,是的,這是可能的情況。 – Ameya 2010-06-23 05:26:53

回答

0

你可以做一個簡單的搜索找到關於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的fileUpload(jQuery插件))結合使用,您可以創建一個很好的界面來跟蹤上傳進度,併爲您提供向用戶提供反饋的能力。