`

下载链接直接打开

    博客分类:
  • java
阅读更多
关键字: 点击pdf/word等链接时时, 直接打开而不是下载的方法
查看复制到剪切板打印

   1. <%@ page session="false" pageEncoding="UTF-8"%>  
   2. <%@page import="java.io.*"%>  
   3. <%  
   4.   response.setContentType("application/pdf");  
   5.  
   6.   out.clearBuffer(); // 如果使用JSP,需要加上这一句    
   7.   OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以    
   8.   response.addHeader("Content-Disposition", new String(("filename=pattern.pdf")  
   9.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名    
  10.   File f = new File(application.getRealPath(".")+"/pattern.pdf"); // 你的文件    
  11.   InputStream is = new FileInputStream(f); // 文件输入流    
  12.   byte[] bs = new byte[1024]; // 读取缓冲区    
  13.   int len;  
  14.   while ((len = is.read(bs)) != -1) { // 循环读取    
  15.     os.write(bs, 0, len); // 写入到输出流    
  16.   }  
  17.   is.close(); // 关闭    
  18.   os.close(); // 关闭  
  19. %> 

Java代码

   1. <%@ page session="false" pageEncoding="UTF-8"%> 
   2. <%@page import="java.io.*"%> 
   3. <% 
   4.   response.setContentType("application/pdf"); 
   5.  
   6.   out.clearBuffer(); // 如果使用JSP,需要加上这一句   
   7.   OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以   
   8.   response.addHeader("Content-Disposition", new String(("filename=pattern.pdf") 
   9.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名   
  10.   File f = new File(application.getRealPath(".")+"/pattern.pdf"); // 你的文件   
  11.   InputStream is = new FileInputStream(f); // 文件输入流   
  12.   byte[] bs = new byte[1024]; // 读取缓冲区   
  13.   int len; 
  14.   while ((len = is.read(bs)) != -1) { // 循环读取   
  15.     os.write(bs, 0, len); // 写入到输出流   
  16.   } 
  17.   is.close(); // 关闭   
  18.   os.close(); // 关闭 
  19. %> 

<%@ page session="false" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%
  response.setContentType("application/pdf");

  out.clearBuffer(); // 如果使用JSP,需要加上这一句 
  OutputStream os = response.getOutputStream(); // 页面输出流,jsp/servlet都可以 
  response.addHeader("Content-Disposition", new String(("filename=pattern.pdf")
      .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名 
  File f = new File(application.getRealPath(".")+"/pattern.pdf"); // 你的文件 
  InputStream is = new FileInputStream(f); // 文件输入流 
  byte[] bs = new byte[1024]; // 读取缓冲区 
  int len;
  while ((len = is.read(bs)) != -1) { // 循环读取 
    os.write(bs, 0, len); // 写入到输出流 
  }
  is.close(); // 关闭 
  os.close(); // 关闭
%>



请注意这一句
查看复制到剪切板打印

   1. response.addHeader("Content-Disposition", new String(("filename=pattern.pdf")  
   2.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名   

Java代码

   1. response.addHeader("Content-Disposition", new String(("filename=pattern.pdf") 
   2.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名   

response.addHeader("Content-Disposition", new String(("filename=pattern.pdf")
      .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名 


运行效果


如果要下载的话,就改成
查看复制到剪切板打印

   1. response.addHeader("Content-Disposition", new String(("attachment; filename=pattern.pdf")  
   2.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名   

Java代码

   1. response.addHeader("Content-Disposition", new String(("attachment; filename=pattern.pdf") 
   2.       .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名   

response.addHeader("Content-Disposition", new String(("attachment; filename=pattern.pdf")
      .getBytes("GBK"), "ISO-8859-1")); // 针对中文文件名 



运行效果




这个东西在http协议里面有规定。

顺便说一句,filename是你下载或者另存为时的文件名,必须用iso-8859-1的编码才可以。
分享到:
评论

相关推荐

    JS端基于download.js实现图片、视频时直接下载而不是打开预览

    针对这一问题,我们可以利用JavaScript和第三方库download.js来实现无论何种文件格式都能直接下载的功能。下面将详细解释如何通过JS实现这个功能。 首先,download.js是一个轻量级的JavaScript库,它允许你在浏览器...

    微信打开外部链接下载APP引导

    end`,当用户点击时,如果手机上已经安装了对应的APP,那么会直接打开;如果没有,系统会提示用户去Google Play或其他应用商店下载。 3. iOS 下载APP引导: 在iOS中,由于Safari的安全策略,不能直接通过`&lt;a&gt;`标签...

    js打开浏览器文件下载框

    本文将深入探讨如何使用JS来打开浏览器的文件下载框,让用户能够选择并下载服务器上的文件。首先,我们需要理解浏览器的安全策略,因为出于安全考虑,浏览器对直接访问本地文件系统有严格的限制。 一、浏览器的同源...

    无视红域名直接打开红域名qq微信支付宝链接开源

    无视红域名直接打开红域名qq微信支付宝链接开源

    网页跳转直接打开小程序代码

    微信小程序较麻烦,且生成的链接有效期为30天,且每个链接只能点击一次,所以,每次用都要重新生成一次,好在每天都能生成50万条,不用担心数量限制。 部门代码如下 $options = array( 'http' =&gt; array( 'method' ...

    连接到txt文本的超链接,不直接打开而是点击后下载的处理方法

    1. `Content-Type: application/force-download`:这个设置告诉浏览器资源应该被当作一个需要下载的文件,而不是在浏览器中直接打开。 2. `Content-Disposition: attachment; filename=&lt;filename&gt;`:这个设置指定了...

    微信扫描打开APP下载链接提示代码完整版.rar

    这个“微信扫描打开APP下载链接提示代码完整版.rar”文件可能包含了一个完整的解决方案,帮助开发者实现通过微信扫码直接跳转到App Store或Google Play进行应用下载的功能。以下是对这个技术的详细解释: 首先,...

    【JavaScript源代码】Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法.docx

    在本文档中,我们探讨了如何在Vue.js应用中通过阿里云OSS(Object Storage Service)的URL直接下载文件,并在下载过程中修改文件名。在尝试通过HTML的`&lt;a&gt;`标签直接设置`download`属性来实现重命名失败后,作者选择...

    android下载word文档并打开

    Android原生并不支持直接打开Word文档,但可以借助第三方库如`Apache POI`或者`Google Docs API`。更常见的是使用第三方应用如Microsoft Word App、WPS Office等。你可以通过`Intent`来启动这些应用,例如: ```...

    access数据可以直接打开

    标题“access数据可以直接打开”揭示了一个关键点:无需安装Microsoft Access软件,用户也能访问和操作Access数据库文件。这通常是通过使用兼容的工具或特定的技术实现的。Access是一种关系型数据库管理系统,广泛...

    ENVI5.3直接打开Sentinel2数据

    ENVI5.3直接打开Sentinel2数据,工具简单方便,欢迎使用,原文链接:https://www.ixxin.cn/2018/12/31/envi53opensentinel2/

    直接打开就可以使用IIS

    标题中的“直接打开就可以使用IIS”指的是使用Internet Information Services(IIS)这款Web服务器来快速启动并运行ASP(Active Server Pages)网站。IIS是微软公司提供的一个强大的Web服务应用程序,它允许开发者在...

    韩顺平_JAVA_视频教程_下载(打开迅雷_直接复制链接地址即可下载

    韩顺平.循序渐进学.《java从入门到精通》……视频地址很全,很方便,复制到迅雷可以直接下载。

    微信跳转浏览器下载APP,打开网页实现代码.rar

    3. **JavaScript的引导跳转**:由于微信可能会拦截直接的APK下载链接,我们可以利用JavaScript进行辅助操作。例如,在网页加载完成后,通过JavaScript检测当前环境是否为微信,并在确认后执行跳转操作。这可以通过...

    绿色版的FTP工具,直接打开即可

    它允许用户从一台计算机(客户端)向另一台计算机(服务器)上传、下载文件,或者管理远程服务器上的文件。绿色版的FTP工具是指不需要安装,解压后即可使用的版本,通常不写入系统注册表,方便携带和在不同电脑上...

    NE超排2014(直接打开ET).zip

    【标题】"NE超排2014(直接打开ET).zip" 指的是一款名为"NE超排2014"的软件或工具的压缩包文件,该文件格式为.zip,意味着它是一个被压缩的数据集合,通常用于存储多个相关文件以便于传输和存储。"直接打开ET"的描述...

    C# 下载不在浏览器打开

    "C# 下载不在浏览器打开"这个主题主要关注如何让用户下载文件时,文件不通过浏览器直接打开,而是保存到本地。这通常涉及到HTTP响应头的设置,以及如何触发浏览器的下载行为。以下是对这个主题的详细阐述: 1. **...

Global site tag (gtag.js) - Google Analytics