SSH入门系列5:struts2实现下载功能
SSH入门系列5:struts2实现下载功能
ORZ你好 发表于10个月前
SSH入门系列5:struts2实现下载功能
  • 发表于 10个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

jsp页面如下设置:

<body>
<a href="myuser/UserAction">点击下载</a>

</body>

随后在Action里面定义方法

public InputStream getDownloadFile() throws Exception{

        System.out.println(666);
        this.fileName ="1.jpg";
        return ServletActionContext.getServletContext().getResourceAsStream("/upload/1.jpg");   
}

 

注意:这里返回类型是InputStream

          同时方法名取值为get**()与下面struts.xml相对应

 

struts.xml做如下设置:


     <action name="UserAction"  class="com.action.UserAction"    >
        <result  name="success"  type="stream">
             <param name="contentType"> image/jpeg</param>
             <param name="contentDisposition" > attachment ;fileName="${fileName}"  </param>
             <param  name="inputName">downloadFile</param>
             <param name="bufferSize" >1024</param>
     </result>
     </action>

注意:这里的结果类型必须是type="stream"

  <param name="contentDisposition" > attachment ;fileName="${fileName}"  </param>

这里的contentPosition默认是inline,即内联样式,具体实现方式是:如果能在网页打开,就在网页打开,否则将会自己选择。

attachment:下载时会打开下载框。fileName="${fileName}动态显示文件名。

  <param name="inputName" > downloadFile</param>这里的文件名必须与Action里面 get**()方法保持一致。否则会报

java.io.FileInputStream cannot be cast to java.lang.String这个错误

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 12
码字总数 8932
×
ORZ你好
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: