`

java文件下载,解决火狐下载空格文件错误

    博客分类:
  • Java
 
阅读更多
写道
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();
			}
		}

	}
	

 

分享到:
评论

相关推荐

    java外卖系统源码-js13k-minipunk:js13k-迷你朋克

    Chrome、Firefox 和 Edge 上进行了测试。 分行 submission分支是为比赛提交的 master分支包括赛后错误修复 发展 源代码都是可以直接由浏览器运行的 vanilla JavaScript。 使用简单的静态 HTTP 服务器(即 或 )为...

    单词/英文文章拼写检查

    - **算法选择**:常见的拼写检查算法有Hunspell(用于Firefox、OpenOffice等)、Aspell等,它们提供了高效的拼写错误检测机制。 - **界面设计**:对于用户友好的界面,可能包括文本输入框、错误提示、建议更正选项...

    2021-2022计算机二级等级考试试题及答案No.17197.docx

    9. 浏览器识别:Internet Explorer(IE)是我国较常用的浏览器之一,其他常见的还有Chrome、Firefox等。 10. 面向对象编程:封装是面向对象方法的核心概念,它将对象的数据和操作结合在一起,形成一个不可分割的...

    2021-2022计算机二级等级考试试题及答案No.10126.docx

    - 正确答案是错误的,即 IE 并不是唯一的浏览网页工具,存在多种其他浏览器如 Chrome、Firefox 等。 ### 16. 查询视图类型 - **描述**:题目要求识别每个查询都有的三种视图。 - **解析**: - 正确答案是 B. ...

    2021-2022计算机二级等级考试试题及答案No.9682.docx

    14. 上网需要安装浏览器软件,如Chrome、Firefox等。 15. VFP中的“文件”菜单中的“关闭”命令用来关闭当前活动窗口。 16. 使用`COPYTO`命令可以将当前表中的数据保存到二维数组中。 17. 为保证RGB颜色选择的有效性...

    2021-2022计算机二级等级考试试题及答案No.18798.docx

    随着技术的发展,虽然Chrome、Firefox等浏览器逐渐普及,但在2021-2022年期间,考虑到历史原因和部分企业及政府机构的兼容性需求,IE浏览器仍然被广泛使用。 #### 2. Java中final关键字的作用 - **知识点**: Java中...

    2021-2022计算机二级等级考试试题及答案No.10918.docx

    2. **IE浏览器**:虽然IE浏览器曾是Windows平台的主要浏览器,但并非唯一选择,现在有许多替代品,如Chrome、Firefox、Edge等。 3. **资源管理器**:资源管理器中的"+"符号表示文件夹内包含子文件夹,点击可展开...

    2021-2022计算机二级等级考试试题及答案No.12839.docx

    21. IE浏览器虽然曾经是Windows平台的主要浏览器,但并非唯一选择,还有Firefox、Chrome、Edge等其他浏览器。 22. Thinter模块绘图步骤: - 导入Tkinter模块 - 创建控件 - 指定控件所属的父窗口 - 使用geometry...

    2021-2022计算机二级等级考试试题及答案No.2683.docx

    26. Web信息浏览:在Internet上,我们通常使用Web浏览器(如Chrome、Firefox等)来访问Web信息。 这些知识点涵盖了操作系统、数据库管理、编程语言、网络基础、办公软件等多个领域,是计算机二级等级考试的重要内容...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    面向对象的思想方法已经非常流行了,在编程语言(例如java,js)中,都运用面向对象的编程思想。在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,...

    2021-2022计算机二级等级考试试题及答案No.11532.docx

    浏览网页需要安装浏览器软件,如Google Chrome、Mozilla Firefox、Microsoft Edge等。这些浏览器软件提供了一个友好的用户界面,使得用户能够轻松地访问互联网上的各种信息和服务。 ### 11. Word文档另存为纯文本 ...

Global site tag (gtag.js) - Google Analytics