`
liyiye
  • 浏览: 416386 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Struts2下载带中文文件名的文件

阅读更多

在需要下载中文时可以使用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中做如下的处理:

  1. 除了在Action中处理ImputStream类型的属性外,再增加一个String类型的Filename属性(可以按需求取相应的名称)。
  2. 在处理逻辑中设置Filename的值,但是在设置完成后一定要将它转换为ISO8859-1的编码,如             this.exportFilename = new String(this.exportFilename.getBytes(), "ISO8859-1");

  3. 在配置文件中这样设置:<param name="contentDisposition">attachment;filename="${exportFilename}"</param>

我对struts.xml不是很熟,可能大家已经知道了类似${name}这样的用法,通过这样可以引用Action中的属性信息。这样配置后,就可以下载中文文件名的文件了。

另外,在这里,对contentDisposition多说两句,现在我们要下载文件,使用的是attachment,这里还可以设置的一个参数是inline,它会直接在浏览器中显示下传的内容。

分享到:
评论
1 楼 huchuhan 2010-08-03  
很不错 学习了 谢谢

相关推荐

    struts2 中文文件名文件下载

    解决中文文件名问题,使用解决方法,文件名编码:ISO8859-1

    struts2上传下载 解决中文文件名乱码

    之前,为中文文件名出现乱码在google上搜索是大量资源,说的很好,但都未能通过验证。此次认真阅读,上机调试终于通过。

    Struts2属性文件详解

    该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以...

    struts2文件下载

    简单的struts2文件下载例子 已解决下载框中 文件名含中文时乱码问题 struts2.3.4

    Struts2实现文件下载功能代码分享(文件名中文转码)

    主要介绍了Struts2实现文件下载功能代码分享(文件名中文转码)的相关资料,需要的朋友可以参考下

    struts2 文件上传与下载

    基于struts2 的文件上传与下载源码,解决中文文件名。

    struts2文件上传(解决中文乱码)

    struts2实现文件上传。解决中文url和中文文件名乱码问题

    02_张孝祥09年Struts视频_文件上传单元

    04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...

    11_张孝祥09年Struts视频_文件上传单元

    04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...

    struts 文件的上传下载 简要实现 下载过程传递中文实现

    这是个Strtus对上传下载功能的简要实现 参考了Strtus2GA包附带源码关于上传下载的程序 在Strtus.xml中配置路径和文件名,页面直接获取 下载过程对中文的处理方式

    android向struts服务器端上传文件代码

    本人也是新手,这个代码是参考的网上代码自己修改写的,能实现android客户端向struts上传文件功能,用的是HttpURLConnection,注意设置请求头的编码为“utf-8",能解决文件名是中文的问题,不然会报错,rg.apache....

    struts2-core-2.3.24.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    struts2-json-plugin-2.3.24.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    struts2-spring-plugin-2.3.24.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    struts2-convention-plugin-2.3.24.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    struts-core-1.3.8.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    ssh(structs,spring,hibernate)框架中的上传下载

    如果有多个映射文件需要声明,使用类路径映射方式显然比直接单独指定映射文件名的方式要简便。  第27~30行定义了Spring代理Hibernate数据操作的HibernateTemplate模板,而第32~34行将该模板注入到tfileDAO中。  ...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    web框架探讨,有兴趣的进,内附源码

    1.可以直接生成XML,JSON; 2.支持spring; 3.支持文件上传,下载(中文文件名不会乱码,测试浏览器IE,firefox); 4.学习java WEB的最佳资料。 (--@copy zjc版权所有,仅供学习--)

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics