下载文档--Struts2中国的文件下载被显示为空间的问题
下载文档--Struts2中国人似乎是空文件下载格问题
前言:近期公司项目中用到文件下载,依据底层,决定使用struts2的文件下载模式。
乱码大多数都攻克了,竟然出现中文文件下载时,中文文字显示为空格的奇葩现象。在经过近三个小时的查询各种文档和苦思冥想,终于发现了问题。见网上还没有战友发出这个现象的文章,所以就写出来,分享给大家。
Struts2的配置文件里:
<!--数据文件下载 -->
<actionname="downloadTemplFile" class="fileDownloadAction">
<result name="success" type="stream">
<paramname="contentType">text/plain</param>
<paramname="contentType">application/octet-stream;charset=ISO8859-1</param>
<paramname="contentDisposition">attachment;fileName="${downloadFileName}"</param>
<paramname="inputName">inputStream</param>
<paramname="bufferSize">1024</param>
</result>
</action>
Java的使用方式:
publicString getDownloadFileName() {
String fileName1 =ServletActionContext.getRequest().getParameter("fileName");
try {
fileName1= new String(fileName1.getBytes("ISO8859-1"), "utf-8");
}catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
String downFileName = fileName1;
try {
downFileName = newString(downFileName.getBytes(), "ISO8859-1");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("downFileName====================>"+downFileName);
return downFileName;
}
publicInputStream getInputStream() throws Exception{
String fileName1 =ServletActionContext.getRequest().getParameter("fileName");
Stringname = new String(fileName1.getBytes("ISO8859-1"),"utf-8");
System.out.println("name===========>"+name);
InputStreamin =ServletActionContext.getServletContext().getResourceAsStream("/custMonitorFile/"+name);
System.out.println(in);
returnin;
}
@Override
publicString execute() throws Exception {
return SUCCESS;
}
说明:
为什么Java源代码中转两次?
回答:
//第一次 从jsp的get或者post获取的字段须要转码。
String fileName1 =ServletActionContext.getRequest().getParameter("fileName");
fileName1 = newString(fileName1.getBytes("ISO8859-1"), "utf-8");
//第二次 设置中文文件名称要以“ISO8859-1”的格式发给client。
String downFileName = fileName1;
downFileName = newString(downFileName.getBytes(), "ISO8859-1");
注意:一定要弄清楚每次转码的目的,始发与终点。
如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com
版权声明:本文博客原创文章,博客,未经同意,不得转载。
下载文档--Struts2中国的文件下载被显示为空间的问题的更多相关文章
- 通过ifrmae异步下载文档
//通过ifrmae异步下载文档 function iframeGetFile(opts) { var defaultOpts = { filePath: '', onload: function ( ...
- windows server 2008 r2 下发布网站excel有时候无法下载文档
最近将公司网站服务器更新了系统,从win2003 到 win2008 r2 (64bit),一切正常,但是使用网站的过程中发现了一个比较奇怪的问题,就是,有时候网站的excel文档无法下载,但是我什么 ...
- book118免费下载文档方法【转】
需要用的工具: 1.360浏览器 2.点"全屏预览",然后把鼠标放在"下载该文档",右键"审查元素",找到 途中箭头指向的标签(如图) 3. ...
- Book118免费下载文档方法
在book118上下载文件时,对于小文件可以使用冰点文库下载器来下载,而对于大文件,则可以使用下面的方法: 需要用的工具: 1.360浏览器 2.点“全屏预览”,然后把鼠标放在“下载该文档”,右键“审 ...
- SAP下载文档为乱码
通过事物WE60下载的文档为乱码,主要原因是编码格式的不匹配,通常默认的编码格式为ANSI编码,那么我们需要将源码的编码格式转换成UTF-8,这样问题可以解决了. 附:编码格式介绍 不同的国家和地 ...
- Bootstrap提供的CDN服务标签与下载文档
目录 1.引入Bootstrap提供的CDN服务 1.选择下载Bootstrap CDN 二:下载Bootstrap官方文档 1.进入Bootstrap官网,选择3版本中文档. 1.引入Bootstr ...
- MVC 点击下载文档
动态生成的List,view页面: <a href=\"#\" class=\"onlyedu-btn\" id=\"downloadError ...
- 下载文档时Safari浏览器下载后出现".html"问题
下载代码是需要设置 Response.ContentType = "application/octet-stream", 不要设为application/x-msdownload, ...
- MVC下载文档
public FileStreamResult DownFile(string content,string name) { ProInterface.ISubject ems = new ProSe ...
随机推荐
- JQuery+CSS3实现封装弹出登录框效果
原文:JQuery+CSS3实现封装弹出登录框效果 上次发了一篇使用Javascript来实现弹出层的效果,这次刚好用了JQuery来实现,所以顺便记录一下: 因为这次使用了Bootstrap来做一个 ...
- Python re正则表达式
参考: 博客园<Python正則表達式指南> 博客园<Python之re模块> 在此感谢博主的无私奉献,本文主要介绍python中re模块的几个简单使用方法.具体的使用方法请參 ...
- Silverlight之 xaml布局
目标:在两周内完成一个界面的功能 第1阶段:完成xaml的布局 准备:视频4-14节 第2阶段: 完成环状图 柱状图 TreeView样式 准备: 矢量绘图 telerik 自定义控件 自定义控件 ...
- Apache与Tomcat整合(转)
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
- 升级到cocos2d-x 2.0.2代码差异
来自:http://www.cnblogs.com/TopWin/archive/2012/09/12/2682042.html 近期看cocos2d-x 2.0.2公布后升级了一下.升级后发现又出现 ...
- BZOJ-2115-Xor-WC2011
叙述性说明 分析 我把文库里的粘了过来. 仅仅知道点1到点N的一条路径和图中若干个环.就能通过异或,表示成全部路径.那么.须要多少环才干保证必然能表示成全部路径呢?事实上.并不须要非常多, 由于一些环 ...
- 英特尔® 硬件加速执行管理器安装指南 — Microsoft Windows*
介绍 本文将指导您安装英特尔® 硬件加速执行管理器(英特尔® HAXM),这是一款可以使用英特尔® 虚拟化技术(VT)加快 Android* 开发速度的硬件辅助虚拟化引擎(管理程序). 前提条件 英特 ...
- AC自己主动机
AC自己主动机 AC自己主动机是KMP和Trie的结合,主要处理多模板串匹配问题.以下推荐一个博客,有助于学习AC自己主动机. NOTONLYSUCCESS 这里另一个Kuangbin开的比赛,大家 ...
- cnBlog 的windows live writer 客户端配置
重装系统后总是忘,备个档 CNBLOG 博客名 cnblog 日志帐户 http://www.cnblogs.com/liulaocai2/ 用户:359444066 密码:同QQ密码,比QQ少一位 ...
- hdu3572 任务分配/最大流量推论全流
意甲冠军:将n分配的任务m机.到的每个任务需要的天数(如果没有持续的日常),并能做到在哪些天任务.询问是否有计划. 典型的任务(X)----日(Y)一半的最大流量,(因为这个任务是天之间的关系)处理器 ...