写道
public void DownloadFileManager(String filename, String url)
throws IOException {
HttpServletResponse response = Struts2Utils.getResponse();
InputStream is = null;
OutputStream os = null;
try {
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("gbk"), "iso-8859-1"));
response.setContentType("application/x-msdownload");
is = new FileInputStream(url);
os = response.getOutputStream();
byte[] buffer = new byte[21940];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is != null) {
is.close();
}
}
}
// 上面代码下载,如果文件名称出现空格,火狐无法下载
解决方法
public void DownloadFileManager(String filename, String url)
throws IOException {
HttpServletResponse response = Struts2Utils.getResponse();
HttpServletRequest request = Struts2Utils.getRequest();
InputStream is = null;
OutputStream os = null;
try {
String agent = (String)request.getHeader("USER-AGENT");
if(agent != null && agent.indexOf("MSIE") == -1) {
String enableFileName = "=?UTF-8?B?" + (new String (Base64.encodeBase64(filename.getBytes("UTF-8")))) + "?=";
response.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
}else {
// IE
String enableFileName = new String(filename.getBytes("GBK"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
}
/* response.setHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("gbk"), "iso-8859-1")); */
response.setContentType("application/x-msdownload");
is = new FileInputStream(url);
os = response.getOutputStream();
byte[] buffer = new byte[21940];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
os.close();
}
if (is != null) {
is.close();
}
}
}
分享到:
相关推荐
Chrome、Firefox 和 Edge 上进行了测试。 分行 submission分支是为比赛提交的 master分支包括赛后错误修复 发展 源代码都是可以直接由浏览器运行的 vanilla JavaScript。 使用简单的静态 HTTP 服务器(即 或 )为...
- **算法选择**:常见的拼写检查算法有Hunspell(用于Firefox、OpenOffice等)、Aspell等,它们提供了高效的拼写错误检测机制。 - **界面设计**:对于用户友好的界面,可能包括文本输入框、错误提示、建议更正选项...
9. 浏览器识别:Internet Explorer(IE)是我国较常用的浏览器之一,其他常见的还有Chrome、Firefox等。 10. 面向对象编程:封装是面向对象方法的核心概念,它将对象的数据和操作结合在一起,形成一个不可分割的...
- 正确答案是错误的,即 IE 并不是唯一的浏览网页工具,存在多种其他浏览器如 Chrome、Firefox 等。 ### 16. 查询视图类型 - **描述**:题目要求识别每个查询都有的三种视图。 - **解析**: - 正确答案是 B. ...
14. 上网需要安装浏览器软件,如Chrome、Firefox等。 15. VFP中的“文件”菜单中的“关闭”命令用来关闭当前活动窗口。 16. 使用`COPYTO`命令可以将当前表中的数据保存到二维数组中。 17. 为保证RGB颜色选择的有效性...
随着技术的发展,虽然Chrome、Firefox等浏览器逐渐普及,但在2021-2022年期间,考虑到历史原因和部分企业及政府机构的兼容性需求,IE浏览器仍然被广泛使用。 #### 2. Java中final关键字的作用 - **知识点**: Java中...
2. **IE浏览器**:虽然IE浏览器曾是Windows平台的主要浏览器,但并非唯一选择,现在有许多替代品,如Chrome、Firefox、Edge等。 3. **资源管理器**:资源管理器中的"+"符号表示文件夹内包含子文件夹,点击可展开...
21. IE浏览器虽然曾经是Windows平台的主要浏览器,但并非唯一选择,还有Firefox、Chrome、Edge等其他浏览器。 22. Thinter模块绘图步骤: - 导入Tkinter模块 - 创建控件 - 指定控件所属的父窗口 - 使用geometry...
26. Web信息浏览:在Internet上,我们通常使用Web浏览器(如Chrome、Firefox等)来访问Web信息。 这些知识点涵盖了操作系统、数据库管理、编程语言、网络基础、办公软件等多个领域,是计算机二级等级考试的重要内容...
面向对象的思想方法已经非常流行了,在编程语言(例如java,js)中,都运用面向对象的编程思想。在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,...
浏览网页需要安装浏览器软件,如Google Chrome、Mozilla Firefox、Microsoft Edge等。这些浏览器软件提供了一个友好的用户界面,使得用户能够轻松地访问互联网上的各种信息和服务。 ### 11. Word文档另存为纯文本 ...