主要导入包:
struts2 2.3.4.1版本相关包
其他
处理接收文件Action类FileUploadAction
package com.dahuazwan.ihwsm.demo;
import java.io.File;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class FileUploadAction extends ActionSupport {
private File image; //上传的文件
private String imageFileName; //文件名称
private String imageContentType; //文件类型
private String newName; //新名称
public String execute() throws Exception {
System.out.println(image);
System.out.println(imageFileName);
System.out.println(imageContentType);
System.out.println(newName);
return SUCCESS;
}
// set/get方法略
}
struts配置文件struts.xml:
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <!-- 解决Post乱码 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.custom.i18n.resources" value="struts"/> <!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) --> <constant name="struts.multipart.maxSize" value="20971520"/> <!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir --> <constant name="struts.multipart.saveDir " value="/" /> <package name="struts3" extends="struts-default,json-default" namespace="/"> <action name="fileupload" class="com.dahuazwan.ihwsm.demo.FileUploadAction" method="execute"> <result name="success">/index.jsp</result> </action> </package> </struts>
上传jsp页面内容:
<form action="fileupload" method="post" enctype="multipart/form-data"><!-- 表单文件上传遵循的格式 -->
<input type="text" name="newName" />
<input type="file" name="image"><br>
<input type="submit" value="submit">
</form>
注意点:
- form表单的method为post,且enctype为multipart/form-data
- FileUploadAction的3个属性遵守以下规则:File {1}、String {1}FileName、String {1}ContentType,
其中{1}必须和表单中file同名。如这里是image,则对应属性为image、imageFileName、imageContentType
- FileUploadAction还需要接收表单其他属性名称,则其名称必须和表单对应名称相等,如这里的newName