private String getContentDisposition(String filename, String ext, HttpServletRequest req, HttpServletResponse res) throws IOException {
StringBuffer tmp = new StringBuffer();
tmp.append("attachment" );
String agent = (String)req.getHeader("USER-AGENT");
tmp.append("; filename=");
if(agent != null && agent.indexOf("Firefox") != -1 ){
//Firefox
tmp.append("=?UTF-8?B?" + (new String (Base64.getEncoder().encode(filename.getBytes("UTF-8")))) + "?=");
tmp.append(".");
tmp.append(ext);
}else if(agent != null && agent.indexOf("Chrome") != -1 ){
//Chrome
tmp.append("\""+URLEncoder.encode(filename, "UTF-8")+"" );
tmp.append(".");
tmp.append(ext+"\"");
}else if( agent != null && agent.indexOf("Safari") != -1 ){
//Safari
tmp.append("\""+new String(filename.getBytes("UTF-8"),"ISO8859_1")+"" );
tmp.append(".");
tmp.append(ext+"\"");
}else{
//IE
tmp.append(new String(filename.getBytes("gb2312"),"ISO8859_1") );
tmp.append(".");
tmp.append(ext);
}
return tmp.toString();
}
分享到:
相关推荐
4. **兼容性处理**:考虑到不同浏览器对非ASCII字符的支持程度可能不同,工具包可能包含了对各种浏览器的兼容性处理,确保在各种环境下都能正确显示中文文件名。 5. **错误处理与日志记录**:为了调试和优化,工具...
在压缩包的文件名“WebBrowser2fne”中,我们可以推测这可能是一个特定的WEB浏览器支持库的名称或者是某个浏览器组件,比如一个用于嵌入式系统的轻量级Web浏览器引擎。"2fne"可能是开发者自定义的版本号或者代码标识...
如果需要包含非ASCII字符,可以使用`filename*`参数,它支持国际化文件名: ```http Content-Disposition: attachment; filename*=UTF-8''example%e6%9c%aa%e5%91%bd%e5%90%8d.pdf ``` 在.NET环境中,如果你使用`...
不同的浏览器对文件名的编码方式有不同的支持,因此开发者需要根据不同浏览器的特点采取相应的编码策略,以确保文件名在各种浏览器环境中都能正常显示。此外,随着浏览器版本的不断更新,未来可能还需要对这些策略...
总之,通过结合HTML、jQuery和一些辅助库,我们可以实现在浏览器中直接导出数据到Excel文件,且支持自定义文件名。这种方式既简单又灵活,尤其适用于轻量级的数据导出需求。当然,对于复杂的导出场景,还是建议使用...
- **其他浏览器兼容性考虑**:虽然上述代码主要考虑了Firefox和IE,但在实际应用中还需要考虑更多现代浏览器如Chrome、Safari等。这些浏览器通常能较好地处理UTF-8编码的文件名,因此对于它们可以直接使用原始的...
某些旧版本的浏览器可能不支持`RFC5987`编码,这时可以采用一种折衷的方案,如将文件名转换为ISO-8859-1编码,但这可能会丢失部分非ASCII字符的信息。 总之,处理“java下载时文件名乱码”问题,关键在于正确地编码...
1. **空格问题**:某些浏览器不支持文件名中的空格,会将其替换为下划线或者在下载时导致文件名混乱。例如,原本的"Test File.txt"可能在客户端变为"Test_File.txt"或"Test+File.txt"。 2. **中文字符乱码**:非...
解决WeLogic服务器中Struts2文件下载时的文件名乱码问题,需要综合考虑编码转换、Struts2配置以及Java代码实现等多方面因素。通过上述方法,可以有效避免文件名乱码,确保文件下载功能在WeLogic服务器环境下稳定运行...
QT写的多标签浏览器是一种基于QT框架开发的网络浏览器,它具备了现代浏览器的基本功能,并且在设计时特别强调了对Flash的支持,使得用户能够在浏览网页的同时享受在线视频和音乐服务。QT是一个强大的跨平台应用程序...
标题中的“支持多浏览器轮播器”意味着这是一个专门设计用于在多个主流浏览器上运行的滑动图片或内容展示工具。这种轮播器通常用于网站,允许用户以动态、交互的方式查看一系列图片、视频或其他信息。轮播器可以是...
标题中的"手机浏览器下载dnrwapxsjw.rar"表明这是一个通过手机浏览器下载的RAR压缩文件,RAR是一种常见的文件压缩格式,通常用于打包多个文件或文件夹以便于存储和传输。"dnrwapxsjw"可能是这个压缩包的具体名称或者...
【A++浏览器】的文件名表明它是整个软件的打包文件,可能包含浏览器的安装程序、必要的库文件、配置文件以及帮助文档等。安装这个压缩包后,用户可以按照指导步骤进行安装,然后在企业环境中享受到定制化浏览器带来...
4. **青蛙跳转技术**:文件名“青蛙跳转 - 微信跳转外部浏览器下载APP.html”中的“青蛙跳转”可能是指一种流行的解决微信跳转问题的技术。这种技术通常包括在HTML页面中嵌入特定的JavaScript代码,以实现更加智能和...
5. **下载管理**:支持下载网络上的文件,并对下载任务进行管理和控制。 6. **扩展插件**:允许用户安装各种插件以增强浏览器的功能,如广告拦截、翻译工具等。 7. **安全防护**:内置安全机制,防止恶意网站和病毒...
创建一个`<a>`标签,并设置其`href`为待下载文件的URL,`download`属性设为文件名。当用户点击链接时,浏览器会尝试下载而不是导航到新的页面。例如: ```html 下载文件 ``` 三、使用`window.location`或`location...
【标签】"java 浏览器 llq浏览器下载 android llq是什么app" 提供了更多关于此应用的上下文信息。"java" 表明该浏览器是用Java语言编写的,这是Android开发的常见选择,因为Java具有跨平台的特性。"llq浏览器下载" ...