使用struts2進行多文件上傳
在網上搜索 都是用數組形式實現的,而我的需求是上傳的文件需要分開,用數組的話沒有次序,分不清各個文件。
我的需求是上傳兩個圖片:
代碼如下:
public class TopicAction {
........................
private File myFile;//上傳圖片相關
private String myFileContentType;//上傳圖片相關
private String myFileFileName;//上傳圖片相關
private File scrollFile;
private String scrollFileContentType;//上傳圖片相關
private String scrollFileFileName;//上傳圖片相關
private String imageFileName;//上傳圖片相關
...............
public String execute() {
................
copy(scrollFile, imageFile);
.............
return SUCCESS;
}
private static void copy(File src, File dst) {
..................................
}
..............................
public File getMyFile() {
return myFile;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String getMyFileContentType() {
return myFileContentType;
}
public void setMyFileContentType(String myFileContentType) {
this.myFileContentType = myFileContentType;
}
public String getMyFileFileName() {
return myFileFileName;
}
public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
}
public File getScrollFile() {
return scrollFile;
}
public void setScrollFile(File scrollFile) {
this.scrollFile = scrollFile;
}
public String getScrollFileContentType() {
return scrollFileContentType;
}
public void setScrollFileContentType(String scrollFileContentType) {
this.scrollFileContentType = scrollFileContentType;
}
public String getScrollFileFileName() {
return scrollFileFileName;
}
public void setScrollFileFileName(String scrollFileFileName) {
this.scrollFileFileName = scrollFileFileName;
}
...................................
}
摘自其它資料:
但是,值得注意的是,此Action中還有兩個屬性:uploadFileName和uploadContentType,這兩個屬性分別用於封裝上傳文件的文件名、文件類型。這是Struts2設計的獨到之處:Strut2的Action類直接通過File類型屬性直接封裝了上傳文件的文件內容,但這個File屬性無法獲取上傳文件的文件名和文件類型,所以Struts2就直接將文件域中包含的上傳文件名和文件類型的信息封裝到uploadFileName和uploadContentType屬性中,也就是說Struts2針對表單中名爲xxx的文件域,在對應的Action類中使用3個屬性來封裝該文件域信息:
l 類型爲File的xxx屬性:用來封裝頁面文件域對應的文件內容。
l 類型爲String的xxxFileName屬性:用來封裝該文件域對應的文件的文件名。
l 類型爲String的xxxContentType屬性:用來封裝該文件域應用的文件的文件類型。