【发布时间】:2011-12-23 19:49:11
【问题描述】:
我希望我的用户能够下载 PDF 文件并让浏览器将其视为文件,而不仅仅是显示它(即它有一个文件名,用户可以选择保存等)。以下标头似乎适用于除 iOS 之外的任何地方:
Content-Disposition: attachment; filename=file.pdf
iOS 只是忽略这一点并显示图像或文档。没什么大不了的,你可能会想,只是我在一个隐藏的 IFRAME 中执行此操作,作为我下载页面的一部分,因此该文档甚至从未被看到,而且看起来下载失败了。
以跨浏览器兼容的方式处理此问题的最佳方法是什么? iOS 是否只是忽略此标头?我在任何地方都找不到任何规范或提及。
我是否需要在请求标头中检查 iOS 并以不同的方式提供响应?我希望避免这种情况。谢谢。
附:感谢您在 iOS 网络浏览器中下载文件等任何其他有用的提示。
澄清:这是关于移动 Safari 浏览器浏览的常规网站。不是原生应用。
【问题讨论】:
-
运气好吗?遇到了类似的问题。
-
还没有……你、我和至少 5 个其他人仍在等待解决这个问题。
-
对于它的价值,这是我目前解决这个问题的方式:在桌面上,我在 ipad/ipod 上使用 target=iframeId 技巧将表单/锚提交到隐藏的 iframe(通过 userAgent 嗅探确定) 但是我将目标设置为 _blank 以强制它在新选项卡中打开。
-
@GeorgeMauer 我想玩这个,但家里没有 iPhone 或 iPad,也不能证明在工作中做这些事情是合理的。您知道我可以在 Windows 或 Linux PC 上免费使用的浏览器是否与 iOS 浏览器具有相同的行为?
-
@MarkAmery browserstack.com? 30 分钟虚拟机时间的演示可能就足够了 - 他们通常对他们算作“使用时间”的时间非常慷慨。
标签: iphone ios ipad http http-headers