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