【问题标题】:Is it possible to change the content/mime type of ajax results?是否可以更改 ajax 结果的内容/mime 类型?
【发布时间】:2012-04-25 17:15:03
【问题描述】:

我正在使用输出缓冲通过 PHP 使用代理处理程序和 readfile() 从网络共享中获取 pdf 文件。 我通过指定内容/mime 类型在新的浏览器选项卡中显示它。 (http://stackoverflow.com/questions/10121903/php-scandir-explorer-view-to-display-network-share-files-file-via-wamp-wor)

我在整个应用程序的其余部分都使用 jQuery / Ajax。 是否可以使用 ajax 将原始 PDF 内容注入 div 标签但使其正确显示?目前,所需的标头 (header("Content-type: application/pdf")) 似乎已被 ajax 请求剥离,并且显示为乱码。

编辑:谢谢大家的cmets和答案。我会更详细地回复并尽快审查我的选择。

@ Murtaza - 上面的问题链接显示了我是如何获得原始 PDF 的,此外,我还使用 $.ajax 将请求发送到 div 标签并使用了 iframe,当我将它呈现到代码中时,它可以工作作为 src=,而不是 Ajax。

@ Brad Christie / Quentin - 也许我可以使用 iFrame 或 Modal 来显示内容?我测试了 pdfobject.js,它很好,但需要链接文件(例如 /files/file.pdf)。听起来很可怕,但是如果我使用 PHP 将临时文件写入 Web 根目录然后显示呢?如果有人使用过,我认为唯一有用的可能是 jQuery PDF 库?

@ Ignacio - 我确实使用以下代码进行了尝试。它使胡言乱语。我可能做错了,因为我没有使用 iFrame 的经验。 // 其中 $filename 是原始 PDF 数据 ">

詹姆斯。

【问题讨论】:

  • 我们可以看看你的表现吗?
  • 您希望浏览器将包含二进制数据的<div> 视为PDF 对象?不可能...

标签: php jquery ajax content-type output-buffering


【解决方案1】:

您不能“将原始 PDF 内容注入 div 标签”; PDF 文件不是 HTML,必须通过 PDF 阅读器插件。尝试将其改为 iframe 的目标。

【讨论】:

    【解决方案2】:

    是否可以使用 ajax 将原始 PDF 内容注入到 div 标签中但让它正确显示?

    不是真的。不过,您也许可以制作一些 pdf.js 的东西。

    当前所需的标头 (header("Content-type: application/pdf")) 似乎已被 ajax 请求剥离

    无论您用于插入数据的方式是明确地将其视为文本或 HTML,而不是 PDF。这是您的代码忽略了内容类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-12
      • 2021-07-19
      • 2012-07-18
      • 1970-01-01
      • 2017-01-03
      • 2016-06-10
      • 2018-07-19
      • 2014-03-17
      相关资源
      最近更新 更多