php - 使用 php 从数据库中提取 pdf BLOB 并将其显示在 html 页面中不起作用

标签 php jquery mysql pdf mime-types

我正在尝试检索 blob pdf 然后将其显示在页面上。 我正在使用以下代码,但是仅显示 Base 64 字符串,而不是我想要的输出 pdf。

以下是我正在使用的代码。

<?php
    //header('Content-type: application/pdf');
    require 'connect.php';
    $db=mysqli_connect($mysql_host, $mysql_user, $mysql_password,$mysql_dbName);
    $sql = "SELECT * FROM files WHERE id = 1688";
    $sth = $db->query($sql);
    $result=mysqli_fetch_array($sth);
    $pdf = base64_encode($result['file']);
    echo $pdf;
?>
<object data="<?php echo $pdf ?>" type="application/pdf"></object>

我尝试过使用

<object data="data:application/pdf;base64,<?php echo base64_encode(content) ?>" type="application/pdf" style="height:200px;width:60%"></object>

并将其放入像这样的 iframe 中

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

但是 pdf 文件无法加载。

------------编辑 2017 年 5 月 8 日--------

我现在使用下面的代码动态添加一个 iframe,但我收到一条错误消息

Resource interpreted as Document but transferred with MIME type application/pdf:

这是我新添加的 JavaScript

var iframe = document.createElement('iframe');

var src = $('#hiddenBase64').val();//this stores the base64 string

$(iframe).width("100%");

$(iframe).height("100%");

iframe.src = "data:application/pdf;base64," + src;

document.body.appendChild(iframe);

感谢您的帮助。

最佳答案

删除回显$pdf。这也会在之前输出 base64_encoded pdf。

关于php - 使用 php 从数据库中提取 pdf BLOB 并将其显示在 html 页面中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416883/

相关文章:

php - MySQL 使用不同的 WHERE 子句进行多次计数并查看结果

php - 符号复杂的环境变量

jquery - Bootstrap 日期时间选择器样式未正确应用

mysql - 开始和结束(靠近)mysql中的路由

java - 将更新发布到 "a"墙

PHP: PDO(MySQL) SSL 连接

php - 如果 php 变量为空,如何隐藏几行?

javascript - 当用户输入正确的文本时,图像会翻转/更改

javascript - 使用 Jquery 检查大写/小写/数字

php - XML 错误 'not well formed'