0 0

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

1个答案 按时间排序 按投票排序

0 0

试试 http://zprill.iteye.com/blog/573626

2012年8月23日 11:52

相关推荐

    Servlet实现多文件批量下载

    在本示例中,我们探讨的是如何使用Servlet来实现多文件的批量下载功能。批量下载通常涉及到将多个文件打包成一个压缩文件,然后提供给用户下载,这样可以极大地提高下载效率,尤其当用户需要下载大量小文件时。 ...

    文件上传与下载servlet

    在IT行业中,文件上传与下载是Web应用中常见的功能,特别是在企业级系统中,例如文档管理系统、在线教育平台等。Servlet作为Java Web开发中的一个重要组件,常被用来处理这些操作。下面将详细介绍如何使用Servlet...

    Servlet文件下载

    ### Servlet文件下载技术详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的Java应用程序,主要用于处理客户端发送的HTTP请求,并响应相应的HTTP结果。Servlet是Java Web开发的基础,广泛应用于...

    servlet下载文件

    ### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。Servlet是Java Web开发的基础技术之一,广泛应用于构建动态网站和Web...

    javax.servlet-api-4.0.1.jar中文文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    文件上传下载servlet自用

    在IT行业中,文件上传下载是Web应用中常见的功能,尤其在服务器端编程中,Servlet扮演着重要的角色。Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在接收到HTTP请求后进行处理,并向客户端返回响应。在...

    javax.servlet-api-3.1.0.jar中文文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    SmartUploadservlet文件上传下载

    - 文件路径规划:合理规划文件存储路径,避免文件过多导致硬盘空间不足或文件管理混乱。 6. **实例应用** 在实际项目中,`SmartUpload`常用于用户上传个人资料、产品图片、文档等场景。例如,用户在注册时可上传...

    javax.servlet-api-3.0.1.jar中文文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    servlet帮助文档

    本提供的`servletapi`文档包含了Servlet API的详细信息,通过阅读这个文档,你可以更深入地理解每个接口和类的功能。同时,结合实际编程练习,可以有效地提高你的Servlet使用技巧和英文阅读能力。 总之,Servlet是...

    javax.servlet-api-4.0.0-b02.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    纯jsp+servlet版的多文件上传与下载

    本项目以"纯jsp+servlet版的多文件上传与下载"为主题,采用MVC(Model-View-Controller)模式进行设计,这是一套广泛应用于Web开发的经典架构。下面将详细介绍这个项目中的关键知识点。 1. **MVC模式**: MVC模式...

    javax.servlet-api-3.1-b08.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    Servlet多文件打包下载

    在本场景中,"Servlet多文件打包下载"是指通过Servlet实现用户选择多个文件后,将这些文件打包成一个压缩文件供用户一次性下载的功能。这涉及到几个关键的技术点,下面我们将详细探讨。 1. **Multipart解析**: 当...

    servlet实现的上传文件实例

    上传文件是Web应用程序中常见的功能,例如用户提交简历、上传图片或者共享文档等。以下是关于这个主题的详细知识点: 1. **HTTP协议与文件上传**: - HTTP协议的POST请求通常用于向服务器发送数据,包括文件上传。...

    servlet文件上传与下载

    这篇博客"Servlet文件上传与下载"将深入探讨如何利用Servlet实现这两个功能。 首先,我们来了解一下Servlet的基本概念。Servlet是Java编程语言中的一类特殊对象,它运行在服务器端,扩展了Web服务器的功能,用于...

    ServletAPI文档(中文/chm格式)

    这个中文/chm格式的Servlet API文档将帮助开发者快速定位和理解上述概念,提高开发效率,避免在编程过程中因不熟悉API而导致的错误。无论你是初学者还是经验丰富的开发人员,都应充分利用此文档,提升自己的Java Web...

    解决idea导入不了servlet类(1).docx

    1. **Tomcat版本问题**:如果使用的Tomcat版本较低或者缺少必要的JAR文件,可能会导致Servlet类无法被识别。 2. **项目配置错误**:项目中的某些配置文件(如`pom.xml`、`build.gradle`等)设置不正确也可能引发此类...

    Servlet规范 中文版(3.1)

    很多人在学习Spring+struts2+hibernate或者现在比较流行的Spring+Spring MVC + Mybatis的时候跟我一样忽略的web的基础,基础未打实,就开始冒进,导致后面的学习很多地方模模糊糊。下层基础决定上层建筑、磨刀不误砍...

    javax.servlet-api-3.1-b04.jar中文文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

Global site tag (gtag.js) - Google Analytics