六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 80|回复: 0

struts2实现文件上传和下载

[复制链接]

升级  20%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
80
 楼主| 发表于 2013-1-15 02:20:00 | 显示全部楼层 |阅读模式
一、文件上传
         1、客户端表单 
                
<s:form action="upload" theme="simple" enctype="multipart/form-data">    <table align="center" border="1" width="50%">          <tr>                    <td>         <s:file name="file" label="file1" id="fileid"></s:file>    </td>          </tr>          <tr>      <td>            <s:submit value="submit"></s:submit>       </td>           </tr>     </table></s:form> 2 、struts.xml配置
     
<action name="upload" class="com.test.action.UploadAction">     <result name="success">/uploadResult.jsp</result>     <result name="input">/upload.jsp</result>     <interceptor-ref name="fileUpload">         <param name="maximumSize">409600</param>         <param name="allowedTypes">text/plain</param>     </interceptor-ref>     <interceptor-ref name="defaultStack"></interceptor-ref>  </action> 
3、action类
     
for (int i = 0; i < file.size(); i++) {     InputStream is = new FileInputStream(file.get(i));    String root = ServletActionContext.getRequest().getRealPath("/upload");     File destFile = new File(root, this.getFileFileName().get(i));     OutputStream os = new FileOutputStream(destFile);     byte[] buffer = new byte[400];    int length = 0;    while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}      is.close();      os.close();} 二、文件下载
        1、客户端表单
                
<s:a href="/MyStructs2/download.action">download</s:a>      2、struts.xml配置
             
<action name="download" class="com.test.action.DownloadAction">          <result name="success" type="stream">               <param name="contentType">text/plain</param>               <param name="inputName">downloadFile</param>               <param name="contentDisposition">attachment;filename="linux.txt"</param>               <param name="bufferSize">1024</param>                    </result>      </action>     3、action类实现getDownloadFile方法
       
public InputStream getDownloadFile(){return ServletActionContext.getServletContext().getResourceAsStream("/upload/linux3.txt");} 三、测试一下吧!
       
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表