-
https导致servlet无法下载文件5
servlet代码如下: [code="java"] String filename = file.getName(); //String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase(); InputStream fis = new BufferedInputStream(new FileInputStream(filePath)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); resp.reset(); resp.setCharacterEncoding("utf-8"); // resp.setHeader("Expires", "0"); // resp.setHeader("Pragma", "public"); //resp.setHeader("Cache-Control", "public"); // resp.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); // resp.setHeader("Cache-Control", "cache, must-revalidate"); resp.setHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes("iso8859-1"),"utf-8")); resp.setHeader("Content-Length", "" + file.length()); resp.setContentType("application/octet-stream"); // resp.setContentType("application/x-msdownload"); // resp.setContentType("application/x-download"); OutputStream os = new BufferedOutputStream(resp.getOutputStream()); os.write(buffer); os.flush(); os.close(); [/code] 如果用的是http的话就可以下载,但是用https就执行完servlet后就没弹出下载提示框,无法下载,注释的代码试过也没用。试过用重定向到"http://localhost:8080/MyServlet/DownloadServlet"也不行,因为是在别的平台上做二次开发,必须得用https,请问大家有没有什么办法?
问题补充:String filename = file.getName();
//String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
InputStream fis = new BufferedInputStream(new FileInputStream(filePath));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
resp.reset();
resp.setCharacterEncoding("utf-8");
//resp.setHeader("Expires", "0");
//resp.setHeader("Pragma", "public");
//resp.setHeader("Cache-Control", "public");
//resp.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
//resp.setHeader("Cache-Control", "cache, must-revalidate");
resp.setHeader("Content-Disposition","attachment;filename="+ new String (filename.getBytes("iso8859-1"),"utf-8"));
resp.setHeader("Content-Length", "" + file.length());
resp.setContentType("application/octet-stream");
//resp.setContentType("application/x-msdownload");
//resp.setContentType("application/x-download");
OutputStream os = new BufferedOutputStream(resp.getOutputStream());
os.write(buffer);
os.flush();
os.close();2012年8月23日 11:47
相关推荐
在本示例中,我们探讨的是如何使用Servlet来实现多文件的批量下载功能。批量下载通常涉及到将多个文件打包成一个压缩文件,然后提供给用户下载,这样可以极大地提高下载效率,尤其当用户需要下载大量小文件时。 ...
在IT行业中,文件上传与下载是Web应用中常见的功能,特别是在企业级系统中,例如文档管理系统、在线教育平台等。Servlet作为Java Web开发中的一个重要组件,常被用来处理这些操作。下面将详细介绍如何使用Servlet...
### Servlet文件下载技术详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的Java应用程序,主要用于处理客户端发送的HTTP请求,并响应相应的HTTP结果。Servlet是Java Web开发的基础,广泛应用于...
### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。Servlet是Java Web开发的基础技术之一,广泛应用于构建动态网站和Web...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
在IT行业中,文件上传下载是Web应用中常见的功能,尤其在服务器端编程中,Servlet扮演着重要的角色。Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在接收到HTTP请求后进行处理,并向客户端返回响应。在...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
- 文件路径规划:合理规划文件存储路径,避免文件过多导致硬盘空间不足或文件管理混乱。 6. **实例应用** 在实际项目中,`SmartUpload`常用于用户上传个人资料、产品图片、文档等场景。例如,用户在注册时可上传...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
本提供的`servletapi`文档包含了Servlet API的详细信息,通过阅读这个文档,你可以更深入地理解每个接口和类的功能。同时,结合实际编程练习,可以有效地提高你的Servlet使用技巧和英文阅读能力。 总之,Servlet是...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
本项目以"纯jsp+servlet版的多文件上传与下载"为主题,采用MVC(Model-View-Controller)模式进行设计,这是一套广泛应用于Web开发的经典架构。下面将详细介绍这个项目中的关键知识点。 1. **MVC模式**: MVC模式...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
在本场景中,"Servlet多文件打包下载"是指通过Servlet实现用户选择多个文件后,将这些文件打包成一个压缩文件供用户一次性下载的功能。这涉及到几个关键的技术点,下面我们将详细探讨。 1. **Multipart解析**: 当...
上传文件是Web应用程序中常见的功能,例如用户提交简历、上传图片或者共享文档等。以下是关于这个主题的详细知识点: 1. **HTTP协议与文件上传**: - HTTP协议的POST请求通常用于向服务器发送数据,包括文件上传。...
这篇博客"Servlet文件上传与下载"将深入探讨如何利用Servlet实现这两个功能。 首先,我们来了解一下Servlet的基本概念。Servlet是Java编程语言中的一类特殊对象,它运行在服务器端,扩展了Web服务器的功能,用于...
这个中文/chm格式的Servlet API文档将帮助开发者快速定位和理解上述概念,提高开发效率,避免在编程过程中因不熟悉API而导致的错误。无论你是初学者还是经验丰富的开发人员,都应充分利用此文档,提升自己的Java Web...
1. **Tomcat版本问题**:如果使用的Tomcat版本较低或者缺少必要的JAR文件,可能会导致Servlet类无法被识别。 2. **项目配置错误**:项目中的某些配置文件(如`pom.xml`、`build.gradle`等)设置不正确也可能引发此类...
很多人在学习Spring+struts2+hibernate或者现在比较流行的Spring+Spring MVC + Mybatis的时候跟我一样忽略的web的基础,基础未打实,就开始冒进,导致后面的学习很多地方模模糊糊。下层基础决定上层建筑、磨刀不误砍...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...