工作中,一同事做下载功能时,在Chrome浏览器下不能正常,最后发现是需要对下载文件名做处理,特记录,源代码如下:
response.reset(); response.setContentType("application/octet-stream"); String filename = ""; if(httpRequest.getHeader("User-Agent").toUpperCase().indexOf("MEIE") > 0){ filename = URLEncoder.encode(file_name, "UTF-8"); }else{ filename = new String(file_name.getBytes("UTF-8"),"ISO8859-1"); } //1:下载;2:预览 if("2".equals(file_type)) { response.setHeader("Content-Disposition", "inline;filename=" + filename); }else { response.setHeader("Content-Disposition", "attachment;filename=" + filename); }
其中,request.getHeader("User-Agent")用来判断浏览器类型。
附:在获取前台传送过来的中文时,往往会出现乱乱码,针对不同的浏览器,需做特殊处理
String fileName = request.getParameter("fileName"); // 解决中文文件名乱码问题 if (request.getHeader("User-Agent").toLowerCase() .indexOf("firefox") > 0) { fname = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器 } else if (request.getHeader("User-Agent").toUpperCase() .indexOf("MSIE") > 0) { fname = URLEncoder.encode(fileName, "UTF-8");// IE浏览器 }else if (request.getHeader("User-Agent").toUpperCase() .indexOf("CHROME") > 0) { fname = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌 }
相关推荐
本文将深入探讨如何使用Java内嵌Chrome浏览器以及如何在Web项目中实现MAC地址的获取。 首先,Java内嵌Chrome浏览器通常借助于开源库如JxBrowser或BrowserSwing。JxBrowser是一个强大的Java库,允许开发者在Java应用...
本示例通过"java跨全域兼容ie/ff/chrome浏览器多文件上传(原创)"的标题,我们可以看出这是一个解决浏览器兼容性问题并实现跨域文件上传的解决方案。下面将详细解释这个主题涉及的关键知识点。 1. **跨域资源共享 ...
本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...
Java CEF调用Chrome浏览器是一种技术方案,它允许Java应用程序利用CEF(Chromium Embedded Framework)来集成Chrome浏览器引擎,从而实现更丰富的Web交互和硬件加速功能。CEF是一个开源框架,它封装了Google Chrome...
Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...
### Java Web程序设计-1期 项目库_单元案例_文件上传下载及发送邮件教学案例 #### 案例背景与目的 本案例是针对Java Web程序设计中的一个具体应用场景——文件上传功能的教学案例。通过该案例的学习,学生将能够...
通过这个项目,学习者不仅可以了解SSM框架的实际运用,还能学习到数据库设计、Web开发流程、数据可视化以及问题排查等方面的知识,对于提升Java Web开发技能大有裨益。同时,提供的源码和视频教程为自我学习提供了...
1. **JavaWeb基础**:该项目的核心技术是Java Web,包括Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等。Servlet用于处理请求,JSP用于展现动态内容,JSTL则提供了标准的标签...
Java在线编辑保存Word文件是一项常见的需求,特别是在Web应用中,用户可能需要在浏览器环境中直接对文档进行编辑操作。PageOffice是一款强大的Java组件,它能够帮助开发者实现这一功能,特别是其V4.4版本,提供了跨...
通过学习和分析这些文件,开发者可以更深入地理解WebRTC的工作原理,并将其应用到自己的项目中。 总结来说,WebRTC结合HTML5和Chrome浏览器,提供了一种在不依赖插件的情况下实现浏览器内实时通信的解决方案。Java...
Java操作Selenium与Chrome解析动态网页是一个常见的自动化测试和数据抓取场景,主要涉及三个关键技术:Selenium WebDriver、Java编程语言以及Google Chrome浏览器。这里我们将深入探讨这些技术及其在动态网页解析中...
在Java开发中,获取项目的路径是一个非常常见的需求,尤其是在处理文件读写、资源定位等场景时尤为重要。本文将详细介绍如何通过不同的方法来获取项目的各种路径,并结合示例代码进行说明。 #### System....
本文将详细介绍如何在Java中处理导出文件时的文件名问题,确保用户能够正常下载带有中文或其他特殊字符的文件名。 #### 知识点一:理解文件名编码问题 在Web应用中,当服务器向客户端发送文件时,HTTP协议中会包含...
这个“java版本websocket实例下载”包含了使用Java实现WebSocket的一个示例项目,我们可以从以下几个方面来理解和学习这个实例: 1. **WebSocket协议基础**:WebSocket是一种在TCP基础上建立的持久连接协议,它的...
该链接指向一个Java Network Launch Protocol (JNLP) 文件,该文件指示Java Web Start软件下载、缓存并运行应用程序。这种方式使得用户无需经历额外的安装步骤即可下载和启动应用程序。 Java Web Start软件作为Java...
综上所述,"uploadify多文件上传(java版)"是一个结合了Uploadify前端库和Java后端技术的多文件上传解决方案,它提供了丰富的功能和高度的可定制性,适用于各种Web应用程序中的文件上传需求。在实际项目中,开发...
在提供的PageDemo文件中,可能包含了实现上述步骤的示例代码,例如前端的Ajax请求脚本、后端的Servlet或Controller处理方法,以及数据库查询的相关逻辑。通过对这些代码的学习和分析,可以更深入理解Ajax分页的实现...
2. **框架应用**:项目可能采用了Spring Boot框架,Spring Boot简化了Java Web应用的初始化和配置过程,提供了一站式的解决方案,包括数据库连接、安全控制、缓存等。同时,也可能使用了MyBatis作为持久层框架,用于...
### 解决不同浏览器下载时中文名乱码问题 在Web开发过程中,经常遇到的一个问题是当用户尝试下载包含中文字符的文件名时,会出现乱码的情况。这是因为不同的浏览器处理文件名编码的方式有所不同,导致服务器端设置...
这个版本2.35.0的Java绑定包含了一系列的类和方法,可以让开发者用Java编写控制浏览器的测试代码,支持多种浏览器如Chrome、Firefox等。 通过学习和研究这两个jar包,你可以了解如何使用Java进行Web自动化测试,...