Struts12---文件的下载

本文介绍如何使用Struts2框架实现文件下载功能,包括创建下载页面、配置struts.xml文件及编写对应的Action处理类。

01.创建一个下载的页面  (我们的下载是把文件的路径写成固定的)

  <body>
    <form action="user/download" method="post">
      <input  type="text"  name="download"/>
      <input  type="submit"  value="下载"/>
    </form>
  </body>

 

02.创建对应的struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

<!--设置开发模式  -->
 <constant name="struts.devMode" value="true"/>
 
    <package name="default"  namespace="/user" extends="struts-default">
       
       <!-- 文件下载  -->
       <action name="download" class="cn.bdqn.action.DownloadAction" method="download">
         <result name="input">/error.jsp</result>
         <result type="stream">
         <!-- ${fileName} 后台获取的fileName -->
          <param name="contentDisposition">attachment;filename=${fileName}</param>
         </result>
       </action>
       
    </package>
</struts>

 

03.创建对应Action

public class DownloadAction extends ActionSupport {
    
     private   String  download; //文件下载的路径
     private   String  fileName; //下载的文件名称
     private  InputStream inputStream; //创建输入流对象
     
     
     //文件下载
     public  String  download(){
         try {
            inputStream=new FileInputStream(download);
            // E:\U1\cat.jpg    只获取文件名
            int index=download.lastIndexOf("\\");
            fileName=download.substring(index+1);
            //防止下载时候中文乱码
            try {
                fileName=URLEncoder.encode(fileName, "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return  INPUT;
        }
         
         return SUCCESS;
     }
     
     
     
     
     
     
     
     
     
     
     
    public String getDownload() {
        return download;
    }
    public void setDownload(String download) {
        this.download = download;
    }
    public String getFileName() {
        return fileName;
    }
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    public InputStream getInputStream() {
        return inputStream;
    }
    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }
     
    
     
     
     

}

 

 

转载于:https://www.cnblogs.com/999-/p/6515901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值