struts2中的文件上传由两部分组成,它分为jsp页面部分和后台代码部分,下面我们一一讲解。
jsp页面部分中的上传表单要求:
*表单提交方式为post提交
*form标签里面有属性enctype,并且属性值改为multipart/form-data
*在form 表单里面有文件上传项,有name属性,例如:<input type="file" name="upload">
action类后台代码部分:
在action中定义成员变量和生成set和get方法
<span style="white-space:pre"> </span>//定义两个变量,upload代表上传文件,uploadFileName代表上传文件的名称
private File upload;
private String uploadFileName;
//get和set方法
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
在具体的action中写上传的逻辑
if (upload!=null) {
<span style="white-space:pre"> </span>//D:/serverUpload为“服务器”中存放文件的文件夹
File serverFile = new File("D:/serverUpload"+"/"+uploadFileName);
//把上传文件复制到服务器中,第一个参数:上传的文件,第二个参数:服务器文件
FileUtils.copyFile(upload, serverFile);
}
这里我们在使用struts2上传文件时会发现上传文件的大小是有限制的,默认最大为2M,那我们怎么提高它的上限呢,这里就需要我们在struts2框架的核心配置文件struts.xml中配置constant标签的属性了,其中value值为最大的上传文件的大小。
<span style="font-family:KaiTi_GB2312;font-size:18px;"> <span style="white-space:pre"> </span><constant name="struts.multipart.maxSize" value="209715200"></constant></span>