1.首先要想文件上传就需要做如下3个最基本步骤
(1)表单提交的method="post"
(2)表单enctype="multipart/form-data"
(3)上传组件的type="file"
2.使用struts2上传文件的基本步骤
(1)Action里的File类型的属性名要和上传文件组件的name属性名一致 upfile
(2)属性名FileName可以获取文件的名称 upfileFileName
单个文件上传的Action:
(1)表单提交的method="post"
(2)表单enctype="multipart/form-data"
(3)上传组件的type="file"
2.使用struts2上传文件的基本步骤
(1)Action里的File类型的属性名要和上传文件组件的name属性名一致 upfile
(2)属性名FileName可以获取文件的名称 upfileFileName
(3)属性名ContentType可以获取上传文件类型 upfileContentType
<!-- 设置上传文件大小默认为2097152 2M -->
<constant name="struts.multipart.maxSize" value="5097152"/>
上传文件页面:
<form action="${pageContext.request.contextPath}/testFileUpLoad_one.action" method="post" enctype="multipart/form-data">
文件<input type="file" name="file">
<input type="submit" value="提交">
</form>
单个文件上传的Action:
public class FileUpLoadAction extends ActionSupport implements Serializable {
private File file;
private String fileFileName;
private String fileContentType;
public String execute(){
System.out.println(fileContentType);
String path = ServletActionContext.getServletContext().getRealPath("files");
File upfile = new File(path,"1"+fileFileName);
try {
FileUtils.copyFile(file, upfile);
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
}
多个文件上传的Action:
public class ManyFileUpLoadAction extends ActionSupport implements Serializable {
private File[] file;
private String[] fileFileName;
public String execute(){
String path = ServletActionContext.getServletContext().getRealPath("files");
if(file!=null && file.length>0){
for(int i=0;i<file.length;i++){
File upfile = new File(path,fileFileName[i]);
try {
FileUtils.copyFile(file[i], upfile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
return SUCCESS;
}
public File[] getFile() {
return file;
}
public void setFile(File[] file) {
this.file = file;
}
public String[] getFileFileName() {
return fileFileName;
}
public void setFileFileName(String[] fileFileName) {
this.fileFileName = fileFileName;
}
}