2012-06-01 39 views
0

我有幾個文件以HTML格式上傳。使用Spring的多個文件進程

<label for="app_snapshot_image_1">SNAPSHOT_1</label> 
<input type="file" name="app_snapshot_image_1" id="app_snapshot_image_1" /> 
<label for="app_snapshot_image_2">SNAPSHOT_2</label> 
<input type="file" name="app_snapshot_image_2" id="app_snapshot_image_2" /> 
<label for="app_snapshot_image_2">SNAPSHOT_3</label> 
<input type="file" name="app_snapshot_image_3" id="app_snapshot_image_3" /> 

這是彈簧控制器處理的multipart從Web請求。

@RequestMapping(value="/apps/addOrModify/", method=RequestMethod.POST) 
     public String testUpload(
      @RequestParam(required=false) MultipartFile app_snapshot_image_1, 
      @RequestParam(required=false) MultipartFile app_snapshot_image_2, 
      @RequestParam(required=false) MultipartFile app_snapshot_image_3) { 
... 
} 

然而,上述控制器可僅處理3從app_snapshot_image_1名爲3個文件;但這不是我想要的。我想用Controller來處理無限制的文件。

希望你明白我的問題,併爲我的小英文感到抱歉。

回答

0

您需要創建一個類似下面的字段的模型類。

List<MultipartFile> files = LazyList.decorate(new ArrayList<MultipartFile>(), 
        FactoryUtils.instantiateFactory(MultipartFile.class)); 

與它的吸氣和二傳手。現在,您需要在jsp中將此模型作爲@ModelAttribute傳遞給您,該文件有一個用於文件上傳的表單。

在JSP中,您需要爲用戶創建一個新輸入,以便使用javascript上載新文件,並在您創建的輸入標記的名稱屬性中指定值爲方括號中的files[some int value]指定用戶添加的文件控制計數在jsp中。

而當您發佈帶有多個文件的表單時,在您的控制器中,您可以使用相同的@ModelAttribute字段來獲取用多個文件填充的列表。

希望這可以幫助你。

乾杯。

+0

如果它真的幫助了你,請提出答案。 :-) –

相關問題