客户端
function downLoad(tdFileId){
var paySaveFileName = document.getElementById(tdFileId).paySaveFileName;
var payUploadFileName = document.getElementById(tdFileId).payUploadFileName;
payUploadFileName = escape(encodeURIComponent(payUploadFileName));
if(paySaveFileName!=''&&isExist(paySaveFileName)){
window.location.href="<%=URL%>orderInfo/orderDownLoad.action?downFileName="+payUploadFileName+"&ext2="+paySaveFileName;
}else{
alert("付款凭证不存在,请重新上传!");
}
}
通过escape(encodeURIComponent(payUploadFileName)),encodeURIComponent()函数可把字符串作为 URI 组件进行编码,escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串编码。
struts2配置文件:
<!-- 下载报告的Action定义 -->
<action name="orderDownLoad" class="orderInfoAction">
<result name="success" type="streamx">
<param name="contentType">text/plain</param>
<param name="inputName">inputStream</param>
<!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">5242880</param>
</result>
</action>
java代码:
public String getDownloadFileName() throws Exception {
String downFileName =request.getParameter("downFileName");
downFileName = URLDecoder.decode(downFileName, "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename="+new String(downFileName.getBytes("gb2312"),"iso-8859-1"));
try {
// 一定要这样处理下,转换成ISO8859方式的西欧字符集。
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
其中downFileName = URLDecoder.decode(downFileName, "UTF-8");是对转义过的汉字重新转义回汉字。
这里注意,开始部署在windows下,没有
response.setHeader("Content-Disposition", "attachment; filename="+new String(downFileName.getBytes("gb2312"),"iso-8859-1"));, 这段代码,后来部署到linux上,下载文件的时候就会乱码了,于是网上搜了下,必须设置下header才能避免不乱码。
分享到:
相关推荐
在Linux环境中,中文汉字的显示可能会遇到乱码的问题,这主要是因为系统默认缺少支持中文的字体。本资源包提供了解决这一问题的方法,通过安装特定的中文字体,可以确保在Linux环境下正确显示中文字符。 首先,我们...
除了\images、\template和\upfiles文件夹,config.php和数据库(SQLite的数据库)文件,其他文件都移到old目录备份; 把新的文件(除\images和\template文件夹,config.php和INSTALL.php文件外)上传到根目录; ...
3. **完全开放源码**:Avalonia项目在GitHub上公开,由一个活跃的社区维护,开发者可以直接参与其开发,提出问题,提交修复和增强功能。 4. **独立于.NET Framework**:Avalonia可以与.NET Core或.NET 5/6一起使用...
这种情况在Windows系统下尤其常见,而在Linux环境下,可以通过安装`rlwrap`程序来解决这一问题。 #### SecureCRT介绍 SecureCRT是一款功能强大的SSH客户端,支持多种协议,包括SSH、Telnet、Serial等,广泛应用于...
如果WRL Viewer支持在Web环境中运行,这些文件可能是为了将3D模型集成到网页中的必要组件。 7. 3D渲染技术:WRL Viewer的实现离不开3D渲染技术,包括硬件加速、光照计算、纹理映射等。这些技术让3D模型看起来更加...
- 如果遇到中文乱码问题,可以尝试使用`:set encoding=utf8`命令重新指定文件编码。 ##### 4.2 DOS与Linux的断行字符 - DOS系统使用`CR+LF`作为换行符,而Linux使用`LF`。 - 可以使用`dos2unix`和`unix2dos`工具来...
6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...
此外,还有一些实用的命令可以帮助用户更好地利用Meterpreter的功能,例如通过`shell`命令可以直接进入交互式命令执行界面,解决中文乱码问题可以通过输入`chcp 65001`来设置正确的字符编码。 #### 七、总结 ...
*解决个别linux环境下,网址导航首页无法生成的问题 *修复删除所有数据后“查看所有分类”不能显示的问题 V1.12 升级补丁包 (2009年7月26日发布) *优化静态页生成功能,提高生成速度,解决php5环境下生成...
1. **页面加载缓慢**:检查是否有大量复杂的Java逻辑嵌入页面中,尝试将这部分逻辑移到Servlet或其他组件中处理。 2. **编码问题**:确保所有文件的编码格式一致,避免乱码问题。 3. **路径问题**:注意资源文件(如...
*解决个别linux环境下,网址导航首页无法生成的问题 *修复删除所有数据后“查看所有分类”不能显示的问题 V1.12 升级补丁包 (2009年7月26日发布) *优化静态页生成功能,提高生成速度,解决php5环境下生成...
{5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}Exception}{99}{chapter.6} {6.1}\ttfamily try-catch}{99}{section.6.1} {6.2}\ttfamily finally}{100}{section.6.2} {6.3}\ttfamily throws}{...