转自:http://www.iteye.com/topic/50414
private String processFileName(String fileName,String agent) throws IOException{
String codedfilename = null;
if (null != agent && -1 != agent.indexOf("MSIE")){
String prefix = fileName.lastIndexOf(".")!=-1?fileName.substring(0,fileName.lastIndexOf(".")):fileName;
String extension = fileName.lastIndexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")):"";
String name = java.net.URLEncoder.encode(fileName, "UTF8");
if(name.lastIndexOf("%0A")!=-1){
name = name.substring(0,name.length()-3);
}
int limit = 150 - extension.length();
if (name.length() > limit) {
name = java.net.URLEncoder.encode(prefix.substring(0, Math.min(prefix.length(), limit / 9)), "UTF-8");
if(name.lastIndexOf("%0A")!=-1){
name = name.substring(0,name.length()-3);
}
}
codedfilename = name + extension;
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
codedfilename = "=?UTF-8?B?"+(new String(org.apache.commons.codec.binary.Base64.encodeBase64(fileName.getBytes("UTF-8"))))+"?=";
}else {
codedfilename = fileName;
}
return codedfilename;
}
分享到:
相关推荐
使用本文的代码,你将可以让 IE(Internet Explorer)、Opera、Firefox 及 Chrome 的用户享受到没有乱码且支持空格文件名的文件输出引擎,同时支持文件名中各种像“# $ % ^ &”等常见的符号,如 "Microsoft.Asp.Net....
以下代码 我做的网页是点击文件直接下载 直接下载下来了,一开始的文件名是上传到oss时以id命名的名字,现在下载的时候想改名,遇到了问题,所以写了这篇博客 首先是后台代码 /** * 附件下载 * <p> * * @param ...
java遍历文件下面的所有文件并输出文件名 java遍历文件下面的所有文件并输出文件名
C#HTML导出excel时文件名,IE,火狐浏览器不兼容,乱码。故此将ExcelHelper.FileName(Request.ServerVariables["HTTP_USER_AGENT"].ToUpper(), $"文件名{DateTime.Now:_yyyyMMdd}", out filename, out encoding);
在不使用从url获取下载文件名的情况下获取下载文件服务器指定的文件名。此规范是依据IE、Chrome等浏览器下载文件使用规范制作
C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义...
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
解决中文文件名问题,使用解决方法,文件名编码:ISO8859-1
welogic struts2文件下载中文件名乱码:在tomcat中是好的哦
之前上传了一个通过Flash实现多文件上传,但是在IE正常运行,当有后台过滤和鉴权时,FireFox 不能正常上传。经过反复研究学习,最终实现了IE 和FireFox 兼容问题。之所以在有后台鉴权时firefox和360浏览器无法正常...
java导出文件文件名处理
检查索引文件与实际数据文件的一致性,需满足索引文件中的文件名与实际文件文件名一致
提供源码文件,直接覆盖就能生效,解决文件名超长显示不全问题
C#Socket文件传输,将文件名和文件保存到一个byte[]中传输,再通过解析获取文件名和文件保存到本地文件夹中
这个是用Microsoft Visual Studio 2008建的网站,WEB版本,把【fujian】文件夹放在D盘下就可以测试, 打开Default.aspx点击...这个的原理是根据文件名和路径查找该文件夹下所有的文件和子文件,匹配的才可以下载下来
JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件
获取指定目录下的文件路径及文件名及统计文件的数目
关于fat文件系统长文件名的实现 FAT32的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。为 了低版本的OS 或程序能正确读取长文件名...则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。
自己制作的文件内容和文件名同时替换成某个指定字符串的程序,挺好用的,但是有个小BUG,VBS更新文件时有可能出现编码转换的细微变化。