`

下载链接直接打开

    博客分类:
  • 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' ...

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

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

    android下载word文档并打开

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

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

    然而,有些时候我们可能希望用户在点击链接时能够下载文件而不是直接打开。要实现这一点,需要修改服务器端的MIME类型设置或在发送文件时指定正确的HTTP头部信息。 对于apache、IIS、tomcat等服务器,通常可以在...

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

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

    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"的描述...

    NDM下载器,可以快速下载链接,网盘,种子的资源.zip

    NDM下载器是一款高效便捷的下载工具,专为用户提供了快速下载链接、网络硬盘和种子文件的功能。这个软件的核心在于其强大的下载管理机制和优化的下载速度,使得用户能够更轻松地获取网络上的各种资源。NDM下载器的C#...

Global site tag (gtag.js) - Google Analytics