struts2的文件上传
实验步骤:
1.创建一个web项目
2.导入struts2常用的类包,下载地址:http://download.csdn.net/detail/yy228313/7108273
3.创建UploadAction动作类,保存包名为com.ye.sise.action
动作类中创建4个变量:
private File upload;//封装上传文件内容 private String uploadFileName;//封装上传文件名 private String uploadContenType;//封装上传文件的类型 private String savePath;//保存路径
setSavePath方法:
public String getSavePath() {
//返回请求参数中savePath保存的值,sp:在struts.xml中配置
return ServletActionContext.getRequest().getRealPath(savePath);
}
execute方法:
public String execute() throws Exception{
String filePath=getSavePath()+"\\"+getUploadFileName();
InputStream is=new FileInputStream(getUpload());//创建上传文件的输入流
OutputStream os=new FileOutputStream(filePath);//根据新路径创建输出流
byte buffer[]=new byte[1024];
int len=0;
while((len=is.read(buffer))>0)
os.write(buffer,0,len);
is.close();
os.close();
return SUCCESS;
}
4.创建两个JSP页面,upload.jsp/uploadResult.jsp,分别用于上传和显示参数,保存目录:webRoot
<s:form action="upload" enctype="multipart/form-date">
<s:file name="upload" label="请选择上传的文件"/>
<s:submit value="上传"/>
</s:form>
5.在指定的位置创建用于保存上传文件的文件夹upload
6.在配置文件struts.xml中定义动作包和动作
核心代码:
<action name="upload" class="com.sise.ye.action.UploadAction">
<param name="savePath">/upload</param>
<result name="success">uploadResult.jsp</result>
<result name="input">upload.jsp</result>
<interceptor-ref name="fileUpload">
<param name="allowedType">text/plain</param>
<param name="maximumSize">20999</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
代码解析:allowedTypes是设置允许上传文件的类型了,maximumSize是设置文件允许的最大限度。
代码下载路径:http://download.csdn.net/detail/yy228313/7115181

浙公网安备 33010602011771号