在需要下载中文时可以使用StreamResult来完成,以下是摘自该类的JavaDoc的对参数的说明:
-
contentType
- the stream mime-type as sent to the web browser(default = text/plain).
-
contentLength
- the stream length in bytes (the browser displays aprogress bar).
-
contentDisposition
- the content disposition header value forspecifing the file name
(default = inline, values are typicallyfilename="document.pdf".
-
inputName
- the name of the InputStream property from the chainedaction (default = inputStream).
-
bufferSize
- the size of the buffer to copy from input to output(default = 1024).
其
中,要下载的文件是什么,需要设置相应的contentType,如需要下载Excel要设置成"application/vnd.ms-excel",
要下载word文档需要设置成"application/msword",而下载TXT文档只需要设置成"text/plain",其它PDF什么的也都
有对应的值,请大家补充吧。
这里只说一下出现中文文件名如何处理,这需要使用到contentDisposition参数,在我们现在的代码中很多是直接写了个英文名在配置文件中,这样当然没有问题,但是如果文件名是动态生成的,而且会是中文如何处理呢?这需要在相应的Action中做如下的处理:
-
除了在Action中处理ImputStream类型的属性外,再增加一个String类型的Filename属性(可以按需求取相应的名称)。
-
在处理逻辑中设置Filename的值,但是在设置完成后一定要将它转换为ISO8859-1的编码,如
this.exportFilename = new String(this.exportFilename.getBytes(), "ISO8859-1");
-
在配置文件中这样设置:<param name="contentDisposition">attachment;filename="${exportFilename}"</param>
我对struts.xml不是很熟,可能大家已经知道了类似${name}这样的用法,通过这样可以引用Action中的属性信息。这样配置后,就可以下载中文文件名的文件了。
另外,在这里,对contentDisposition多说两句,现在我们要下载文件,使用的是attachment,这里还可以设置的一个参数是inline,它会直接在浏览器中显示下传的内容。
分享到:
相关推荐
解决中文文件名问题,使用解决方法,文件名编码:ISO8859-1
之前,为中文文件名出现乱码在google上搜索是大量资源,说的很好,但都未能通过验证。此次认真阅读,上机调试终于通过。
该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以...
简单的struts2文件下载例子 已解决下载框中 文件名含中文时乱码问题 struts2.3.4
主要介绍了Struts2实现文件下载功能代码分享(文件名中文转码)的相关资料,需要的朋友可以参考下
基于struts2 的文件上传与下载源码,解决中文文件名。
struts2实现文件上传。解决中文url和中文文件名乱码问题
04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...
04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...
这是个Strtus对上传下载功能的简要实现 参考了Strtus2GA包附带源码关于上传下载的程序 在Strtus.xml中配置路径和文件名,页面直接获取 下载过程对中文的处理方式
本人也是新手,这个代码是参考的网上代码自己修改写的,能实现android客户端向struts上传文件功能,用的是HttpURLConnection,注意设置请求头的编码为“utf-8",能解决文件名是中文的问题,不然会报错,rg.apache....
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
如果有多个映射文件需要声明,使用类路径映射方式显然比直接单独指定映射文件名的方式要简便。 第27~30行定义了Spring代理Hibernate数据操作的HibernateTemplate模板,而第32~34行将该模板注入到tfileDAO中。 ...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
1.可以直接生成XML,JSON; 2.支持spring; 3.支持文件上传,下载(中文文件名不会乱码,测试浏览器IE,firefox); 4.学习java WEB的最佳资料。 (--@copy zjc版权所有,仅供学习--)
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...