2013-10-01 107 views
1

我在使用struts2上傳文件時遇到了問題。我有多個文件標籤,如在struts 2中上傳多個文件

<s:file name="fileUpload_5534" multiple="multiple"/> 

<s:file name="fileUpload_5585" multiple="multiple"/> 

<s:file name="fileUpload_5595" multiple="multiple"/> 

這些文件標籤動態創建,並再次爲我指定multiple="multiple"可以有多個文件上傳。任何人都可以提出這種上傳解決方案。

+2

請在發佈後考慮查看您的問題;你會注意到你的JSP片段是不可見的。你應該有一個使用普通S2集合字段命名語法的文件映射。 –

+0

使用Struts 2進行多文件上傳:http://geekonjava.blogspot.com/2015/07/multiple-file-upload-using-struts-2.html – GeekOnJava

+0

@GeekOnJava或http://stackoverflow.com/a/17212916/1654265;)順便說一句好文章 –

回答

1

您可以從單個<s:file>元素with multiple="multiple" like described here上傳多個文件。

您還可以以相同的方式上傳多個<s:file>元素(允許每個文件爲單個文件)中的多個文件,處理<s:file>的名稱以指向Action列表。

你真的想上傳一個List S的的File小號Lists

如果是的話,我建議你到一個對象模型,像MyFileListObject,包含所需要的數據列表:

class MyFileListObject { 
    private List<File> files; 
    private List<String> filesContentType; 
    private List<String> filesFileName;  

    /* getters and setters */ 
} 

,然後露出List<MyFileListObject>通過行動。

或者,您可以更造粒它,定義一個新的對象,像MyFileObject

class MyFileObject { 
    private File files; 
    private String filesContentType; 
    private String filesFileName;  

    /* getters and setters */ 
} 

,在MyFileListObject上市:

class MyFileListObject { 
    private List<MyFileObject> files; 

    /* getter and setter */ 
} 

,然後通過行動暴露List<MyFileListObject>

但對我來說似乎矯枉過正...哪種頁面應該讓許多<input type="file"/>每個文件上傳多個文件?