2015-02-10 58 views
0

在我們的Spring MVC的項目,我們只是一個DTO對象發送一個.xlsx文件到服務器:Spring MVC的發送Excel作爲字節數組服務器錯誤

DtoClass { 

    private String filename; 
    private byte[] array; 
} 

我們通過接收此文件的服務器上,現在一個簡單的控制器

問題是,當我們把這個簡單的excel文件從這個byte []保存到磁盤上時,文件被損壞了。 任何想法爲什麼?

p.s客戶端使用base64發送帶有編碼的字節數組。 另一個有趣的事實 - txt文件實際上工作,並可以在從客戶端 - >服務器發送後使用文本編輯器定期打開。

回答

0

看看MultipartFile

您可以將DTO更新爲MultipartFile作爲字段或可以直接發送。

方法1 - MultipartFile作爲DTO

的一部分

更新DTO如下

DtoClass { 
    private String filename; 
    private MultipartFile file; 

    // getter & setters 
} 

控制器應該如下

@RequestMapping(value = "/doUpload/", method = RequestMethod.POST) 
public void uploadMultipart(
    final HttpServletRequest request, 
    @RequestParam("file") DtoClass dto) { ... } 

方法2 - MultipartFile發送直接

這裏你的控制器看起來像的東西,如下

@RequestMapping(value = "/doUpload/", method = RequestMethod.POST) 
public void uploadMultipart(
    final HttpServletRequest request, 
    @RequestParam("file") final MultipartFile multiPartFile) { ... } 

附:

  1. 確保您在配置文件中輸入了<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
  2. 客戶也應該設置enctype="multipart/form-data"

相關問題