在需要下载中文时可以使用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,它会直接在浏览器中显示下传的内容。
分享到:
相关推荐
在“struts2 中文文件名文件下载”的场景中,我们需要关注的是如何在Struts2框架下正确处理包含中文字符的文件名。首先,我们要理解文件名编码ISO8859-1,这是一个西欧字符编码标准,不支持中文字符。在处理中文...
以上步骤完成后,Struts2应该能正确处理包含中文文件名的上传和下载操作,避免乱码问题。不过,需要注意的是,不同的服务器环境、浏览器版本或客户端设置可能会影响到文件名编码的处理,因此在实际应用中可能还需要...
### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...
总结来说,Struts2中实现文件下载的关键在于正确配置`struts.xml`,使用`stream`类型的结果,并处理好`Content-Disposition`中的文件名编码。对于中文文件名,需要在Action中提供编码转换的方法,并在配置文件中引用...
指定了Struts 2应用所需的国际化资源文件,如果有多个国际化资源文件,多个文件名间以英文逗号`,`分隔。 #### struts.diSPAtcher.parametersWorkaround 针对某些Java EE服务器不支持`HttpServletRequest`调用`...
在本文中,我们将深入探讨如何使用Struts2框架实现文件下载功能,尤其是处理包含中文...通过以上步骤,你可以使用Struts2实现文件下载功能,包括处理中文文件名。理解这些知识点有助于构建健壮且用户友好的Web应用。
在标题提到的场景中,开发者可能遇到了在使用Myeclipse 6.5集成开发环境,JDK1.6和Tomcat 6.0服务器环境下,通过Struts2进行文件下载时,中文文件名显示为乱码的问题。 中文乱码是由于字符编码不一致导致的,尤其是...
本文将详细介绍如何在Struts2框架下实现批量上传与文件下载,并解决中文乱码问题。 一、Struts2文件上传 1. 配置Struts2文件上传支持: 在struts.xml配置文件中,我们需要添加`<constant>`元素来设置允许上传的...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
以下将详细介绍如何在Struts 2中实现文件下载,特别是处理中文文件名的问题。 首先,你需要创建一个Action类,例如`FileDownloadAction`,这个类需要包含一个方法来提供文件的输入流。通常,你会有一个属性如`...
**4.3 使用Struts2实现文件下载** Struts2提供了内置的支持来实现文件下载,通过配置`<result>`元素的类型为`stream`来指定下载行为。 ```xml <param name="contentType">application/octet-stream ...
以上就是使用Struts2实现文件下载,特别是解决中文文件名乱码问题的详细步骤。在实际开发中,可能还需要结合其他技术,如Spring、Hibernate等,以及考虑性能和用户体验等因素。希望这个简单的示例能够帮助你理解...
在本主题中,“struts文件带进度条上传,文件下载”指的是在Struts框架下实现带有进度条的文件上传与下载功能,同时解决中文乱码问题,并确保兼容各种浏览器。 **文件上传** 在Struts中,文件上传通常使用`struts2...
这篇教程将带你了解如何在Struts2中实现文件上传和下载,并涉及到国际化(i18n)的应用。 1. **文件上传**: - **配置Struts2 Action**: 首先,你需要创建一个Action类,这个类将处理文件上传的请求。使用`@Action...
在Struts2框架中,文件上传和下载是常见的功能需求,但处理中文文件名或内容时,可能会遇到中文乱码的问题。这个问题主要涉及到字符编码的处理,包括HTTP请求的编码、文件名的编码以及文件内容的编码。接下来,我们...
本文将重点介绍Struts2中文件下载的实现方式,包括其配置、代码实现以及对中文文件名的支持。 #### Struts2文件下载的基本原理 Struts2的文件下载主要通过`<result type="stream">`元素来配置,该元素允许将一个...
下面我们将详细讨论如何使用Struts2实现文件下载功能,并处理中文文件名的转码。 首先,我们需要创建一个Action类,例如`DownLoadAction`,这个类继承自`ActionSupport`,这是Struts2提供的基础支持类,包含了处理...
本教程将详细介绍如何在Struts中实现无中文乱码的文件上传与下载,并涵盖任意数量的文件上传。 首先,解决中文乱码问题的关键在于配置正确的字符编码。在Struts的配置文件`struts-config.xml`中,你需要为...
Struts2是一个强大的Java Web...总之,解决Struts2中的中文乱码问题,关键在于配置正确的字符编码,并在文件上传和下载过程中处理好编码转换。通过以上步骤,你可以有效地在Struts2项目中实现对中文URL和文件名的支持。
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互时,如允许用户上传个人资料图片或下载文档。本教程将深入探讨如何在Struts2中实现这两个功能,并特别关注解决中文文件名的问题。 首先,我们要...