实验步骤:
1.创建一个web项目
2.导入struts2常用的类包,下载地址:http://download.csdn.net/detail/yy228313/7108273
3.创建UploadAction动作类,保存包名为com.ye.sise.action
动作类中创建4个变量:
| 1 2 3 4 | privateFile upload;//封装上传文件内容privateString uploadFileName;//封装上传文件名privateString uploadContenType;//封装上传文件的类型privateString savePath;//保存路径 | 
setSavePath方法:
| 1 2 3 4 | publicString getSavePath() {    //返回请求参数中savePath保存的值,sp:在struts.xml中配置    returnServletActionContext.getRequest().getRealPath(savePath);} | 
execute方法:
| 1 2 3 4 5 6 7 8 9 10 11 12 | publicString execute() throwsException{    String filePath=getSavePath()+"\\"+getUploadFileName();    InputStream is=newFileInputStream(getUpload());//创建上传文件的输入流    OutputStream os=newFileOutputStream(filePath);//根据新路径创建输出流    bytebuffer[]=newbyte[1024];    intlen=0;    while((len=is.read(buffer))>0)        os.write(buffer,0,len);    is.close();    os.close();    returnSUCCESS;} | 
4.创建两个JSP页面,upload.jsp/uploadResult.jsp,分别用于上传和显示参数,保存目录:webRoot
| 1 2 3 4 | <s:form action="upload"enctype="multipart/form-date"><s:file name="upload"label="请选择上传的文件"/><s:submit value="上传"/></s:form> | 
5.在指定的位置创建用于保存上传文件的文件夹upload
6.在配置文件struts.xml中定义动作包和动作
核心代码:
| 1 2 3 4 5 6 7 8 9 10 | <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
原文:http://www.cnblogs.com/yexiaodong/p/3628855.html