struts2实现文件下载

struts.xml文件:

        <action name="exportToExcel" class="com.asiainfo.business.SheetManageAction" >
	    <result name="success" type="stream">
		<!-- 指定下载文件的内容类型,text/plain是默认类型 -->
		  <param name="contentType">text/plain</param>
	        <!-- inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数 -->
		  <param name="inputName">inputStream</param>
		  <param name="contentDisposition">attachment;filename="${filename}"</param>
		  <param name="bufferSize">2048</param>
           </result>
       </action>
参数解释:
contentType 
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片; 

inputName 
下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法; 

contentDisposition 
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为: 
attachment;filename="struts2.txt",表示文件下载的时候保存的名字应为struts2.txt。如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="struts2.txt" ;

bufferSize 
下载缓冲区的大小;

后台Action:

public String exportToExcel(){
		
		return SUCCESS;
	}
InputStream inputStream;
	public InputStream getInputStream() throws Exception {
		
		//具体读取文件的方法
    }

前台JSP:

window.open("${pageContext.request.contextPath}/命名空间名/exportToExcel.action?参数名="+变量存的参数值, "_self");
参数解释:

_self 表示当前窗口
_blank 表示新窗口
_parent 表示父窗口
_top 表示顶层窗口
延伸:
javascript中 open的参数定义为:
open( [sURL] [, sName] [, sFeatures] [, bReplace])
其中第二个参数定义打开的窗口名,或者用_blank指定新窗口,_top指定顶级窗口等。这个名字以后能用在A或者form的target参数中。

而窗口的长宽等是定义在sFeatures中,如height=200,width=400

最后一个参数是true/false,用来指定是否在替换当前浏览器历史中的地址


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值