注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

struts2 下载文件  

2013-05-10 17:25:28|  分类: struts |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Struts2下载文件实现的说明

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

下载缓冲区的大小


< ?xml version="1.0" encoding="UTF-8" ?>
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"< A href="http://struts.apache.org/dtds/struts-2.0.dtd">
http://struts.apache.org/dtds/struts-2.0.dtd< /A>">
< PACKAGE name="default" extends="struts-default">
< !-- 在这里添加Action定义 -->
< !-- 简单文件下载 -->
< ACTION class=example.FileDownloadAction name="download">
< RESULT name="success" type="stream">
< PARAM name="contentType">text/plain< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< PARAM name="contentDisposition">attachment;filename="struts2中文.txt"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>
< BR> < !-- 文件下载,支持中文附件名 -->
< ACTION class=example.FileDownloadAction2 name="download2">
< !-- 初始文件名 -->
< PARAM name="fileName">Struts中文附件.txt< /PARAM>
< RESULT name="success" type="stream">
< PARAM name="contentType">text/plain< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< !-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
< PARAM name="contentDisposition">attachment;filename="${downloadFileName}"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>

< !-- 下载现有文件 -->
< ACTION class=example.FileDownloadAction3 name="download3">
< PARAM name="inputPath">/download/系统说明.doc< /PARAM>
< !-- 初始文件名 -->
< PARAM name="fileName">系统说明.doc< /PARAM>
< RESULT name="success" type="stream">
< PARAM name="contentType">application/octet-stream;charset=ISO8859-1< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< !-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
< PARAM name="contentDisposition">attachment;filename="${downloadFileName}"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>
< /PACKAGE>


常见的异常问题:

java.lang.ClassCastException: java.io.FileInputStream cannot be cast to java.lan

 <param name="inputName">inputStream</param><!--action的方法名-->
  评论这张
 
阅读(609)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016