博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2文件下载
阅读量:6601 次
发布时间:2019-06-24

本文共 1268 字,大约阅读时间需要 4 分钟。

我们在学习Servlet和HTTP协议时已经可以实现文件下载,即写content-disposition头即可,struts2的实现原理也是这个,但是提供了更好的封装性;

struts2的stream结果类型专门用于实现文件下载;

(1)struts.xml中配置stream结果类型,并配置contentType、contentDisposition、bufferSize参数即可,模板:

<action name="download" class="">

<result type="stream" name="success">

<param name="contentType"></param>

<param name="contentDisposition">attachment;filename=""</param>

<param name="bufferSize">4096</param>

</result>

</action>

(2)在Action中创建public InputStream getInputStream()throws Exception;方法,此方法用于获得下载文件的输入流;

package org.download.action;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class DownloadAction extends ActionSupport {

public InputStream getInputStream()throws Exception{

return ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/upload/1.jpg");

}

public String execute()throws Exception{

return SUCCESS;

}

}

struts.xml
            <action name="download" class="org.download.action.DownloadAction">
<result type="stream" name="success">
<param name="contentType">image/jpeg</param>
<param name="contentDisposition">attachment;filename="1.jpg"</param>
<param name="bufferSize">4096</param>
</result>
</action>

就可以完成下载;

转载于:https://www.cnblogs.com/toge/p/6114706.html

你可能感兴趣的文章
Android图像处理(二)--Paint,Canvas,ColorMatrix详细
查看>>
Android 百度地图
查看>>
iOS 架构(起手式)
查看>>
FilterDispatcher处理流程
查看>>
基于云平台部署应用的三种方式
查看>>
正确使用 Volatile 变量
查看>>
我的友情链接
查看>>
持续集成
查看>>
我的友情链接
查看>>
ubuntu下配置tomcat的步骤;
查看>>
python学习随笔--django 上
查看>>
安装WEB_shell开源堡垒机 gateone
查看>>
高性能HTTP加速器Varnish(安装配置)
查看>>
软件技术发展的几个阶段
查看>>
查看WINXP系统关机时间 so-easy
查看>>
修改mysql数据库编码
查看>>
代码审查RhodeCode试用
查看>>
我的友情链接
查看>>
squid代理服务器的控制功能详细配置
查看>>
MongoDB权威指南——入门
查看>>