使用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属性:用来封装该文件域应用的文件的文件类型。