Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PDF文件下载不仅适用于iPad特定浏览器_Ipad_Google Chrome_Pdf_Safari - Fatal编程技术网

PDF文件下载不仅适用于iPad特定浏览器

PDF文件下载不仅适用于iPad特定浏览器,ipad,google-chrome,pdf,safari,Ipad,Google Chrome,Pdf,Safari,在服务器端生成一个PDF文件,并推送到客户端下载。虽然下载可以在windows上的所有浏览器上运行,但在IPAD上无法运行。 请告知 规格:OS 6、Safari 6.1、Chrome 23.0.1271.100 请注意:在此应用程序中,pdf不会下载到新的url(无重定向) 一般行为:IPad浏览器(safari/chrome)不支持下载窗口,因此它需要打开pdf并提供在兼容pdf的应用程序中查看的选项。这是目前没有发生的 当我调试下面的servlet操作代码以便下载时,服务器上成功生成了pd

在服务器端生成一个PDF文件,并推送到客户端下载。虽然下载可以在windows上的所有浏览器上运行,但在IPAD上无法运行。 请告知

规格:OS 6、Safari 6.1、Chrome 23.0.1271.100

请注意:在此应用程序中,pdf不会下载到新的url(无重定向)

一般行为:IPad浏览器(safari/chrome)不支持下载窗口,因此它需要打开pdf并提供在兼容pdf的应用程序中查看的选项。这是目前没有发生的

当我调试下面的servlet操作代码以便下载时,服务器上成功生成了pdf文件,但Ipad上的浏览器没有显示:-(

代码示例:

/**设置响应头**/

      response.setHeader("Content-Type", "application/pdf");
      response.setHeader("Content-Disposition", "attachment;filename=sample.pdf"); 
      response.setHeader("Connection", "close");
      response.setHeader("Cache-Control","cache");
      response.setHeader("Pragma","cache");
      response.setDateHeader ("Expires", dt.getTime() + 100000);
/**写入输出**/

      InputStream stream = info.getInputStream(); 
      OutputStream os = response.getOutputStream();
      try {
            response.setContentType(contentType);
            copy(stream, response.getOutputStream());
      }
      finally {
      if (stream != null) {
         stream.close();
      }
 }

要显示pdf而不是要求浏览器保存,请使用“内联”而不是“附件”

另外,您要设置内容类型两次,一次在标题中,一次使用
setContentType()

我不确定这两个标题是否相互影响或相互抵消,所以不能肯定这是一个错误的来源,但它似乎是一个需要考虑改变的东西。

< P>测试之后,上面粘贴的下载操作代码似乎是很好的,因为问题是浏览器特定的。 Andriod Tablet-Firefox浏览器将pdf下载到弹出窗口中。 IPad:Safari-FIX:强制内容在新标签中打开,类似这样:

窗口。打开(打印url);

其中print_url是baseurl+action.do+附加_参数。

1。内容配置“inline”似乎在操作系统上有效。在Safari和chrome浏览器上尝试过。2.有趣的一点是setHeader(内容类型,xxx)v/s setContentType确实尝试过排列和组合在Ipad中没有帮助,但在windows firefox上明确显示setContentType是必须的。我的问题仍然没有解决。您的见解将非常有帮助。
response.setHeader("Content-Disposition", "inline;filename=sample.pdf");