《研磨struts2》第十三章 文件上传下载 之 13.2 文件下载
13.2??文件下载13.2.1概述
前面学习了文件上传的实现,接下来看看如何实现文件下载的功能。实现文件下载功能的方式也很多,这里只具体看看如何使用Struts2来实现文件下载。
使用Struts2来实现文件下载,会用到它的stream类型的Result,这种Result最终会返回一个InputStream,只需要让这个InputStream能读到用户想要下载的文件即可。
13.2.2?stream结果类型
先来回忆一下stream的结果类型出现在struts-default.xml中的配置,示例如下:
?
图13.4 跳转到downloadAction后弹出的文件下载对话框
13.2.6难道只能在配置文件中写死文件名吗?
看到这里,可能有朋友会想:难道下载的文件名只能在配置文件struts.xml中写死吗?肯定不是的,首先把对应的配置信息去掉,看看Struts2是否能自适应文件名
?
图13.5 跳转到downloadAction后弹出的文件下载对话框
看起来不设置contentDisposition属性这条路走不通。那么该怎么做才能让下载显示的文件名称不是写死的呢?
?????? 有两种解决的方式。一种就是在Action中提供一个返回文件名称的方法,然后在配置文件中引用这个变量;另外一种方法干脆就去掉配置文件中关于contentDisposition的配置,而直接在Action中提供一个getContentDisposition的方法。
?????? 接下来分别看看示例。
1:第一种实现方式
?????? 也就是在Action中提供一个返回文件名称的方法,然后在配置文件中引用这个变量,这一个实现方式。此时Action的实现,示例代码如下:
?
图13.6? 下载提示页面显示中文文件名
?
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4122.html】
欢迎访问http://sishuok.com获取更多内容