用php显示数据库中的pdf文件

时间:2017-10-10 12:44:34

标签: php html

我一直在使用此代码来显示我的图片

        <dd><?php echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';

但是当我想要显示一个pdf文件时,我的页面上什么都没有,我只能从iframe标签中获取该帧。

我已使用此代码显示我的pdf文件(也存储为blob):

        <dt> <?php echo '<iframe src="data:application/pdf;base64,'.base64_encode( $result['image'] ).'"</iframe>'; ?></dt>

1 个答案:

答案 0 :(得分:1)

您遇到问题的原因可能有多种:

  1. 数据库中的数据已损坏
  2. 从数据库中检索数据会导致数据损坏
  3. 您创建的HTML无法在浏览器中使用。
  4. 要找出罪魁祸首,您可以执行以下步骤:

    • 手动从数据库中检索PDF数据并尝试在PDF阅读器中打开它。如果这不起作用,表中的PDF数据很可能已损坏。检查将数据保存到数据库的过程。
    • 将检索到的数据编码到base64(通过再次解码,检查是否正确完成,并在阅读器中打开解码数据)。
    • 从PHP脚本输出base64编码文本,并比较两个base64块的相等性。如果它们不同,则在从数据库检索数据时,您的脚本似乎会破坏数据。
    • 使用您之前生成的base64数据创建静态HTML页面,并在浏览器中打开它。如果这不起作用,则HTML不适合将PDF嵌入其中,或者浏览器根本不支持显示PDF嵌入。