struts2的上传功能用了很多次了,可是每次都要从网上找找资料,这次还是记下来,为后期使用时节省点时间。
一. 配置文件
<package name="product" namespace="/" extends="struts-default">
<action name="product_*" class="cn.test.ProductAction" method="{1}">
<result name="saveLoaner">product_showHome.html</result>
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif</param>
<!--以字节为单位, 2m-->
<param name="maximumSize">2097152</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
说明:fileUpload拦截器必须放在defaultStack之前,否则不起作用。当不做限制上传时,这两个拦截器可以不要。
二. Action写法
单文件上传时,html上的file控件配置name属性,比如叫file1,那对应的action中必须有三个属性:
private File file1;
private String file1ContentType;
private String file1FileName;
public String execute() {
//上传文件保存路径
String path = ServletActionContext.getServletContext().getRealPath("upfile");
FileupFile = new File(path);
//将文件从临时目录拷贝到指定目录
FileUtils.copyFile(file1, new File(upFile,file1FileName);
}
说明:3个属性,命名有讲究,可不能随便命名,只有file1可以随便起名字,file1变了,其他的两个必须跟着变。
三. jsp页面
form表单提交,method=“post" enctype="multipart/form-data"
ok, that ’ s all!