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

 

posted @ 2014-03-29 08:00  SeatonYexd  阅读(185)  评论(0编辑  收藏  举报