从mysql中保存的路径显示PDF

时间:2015-06-05 17:04:10

标签: php mysql pdf

我有一个保存在mysql数据库中的pdf文件的路径。我想要做的是查询该路径的数据库,然后显示pdf。我尝试了一些不同的东西,但它一直要求下载文件而不是显示它。我很困惑,最好的办法是什么。我可以从数据库中提取我需要的东西,但我无法正确显示pdf。我也尝试将其保存为blob,然后从数据库中显示它,但我遇到了同样的问题。如果我做了 header(“Content-type:application / pdf”);它提示我下载,但如果我拿走它我只会得到疯狂的符号。 任何帮助,将不胜感激。

<?php
    /*$query = mysqli_query($con, "SELECT doc FROM tbl_docs WHERE id = 1");
    $row = mysqli_fetch_array($query);
    $content = $row['doc'];
    echo $content;*/

    $query = mysqli_query($con, "SELECT path FROM tbl_docs WHERE id = 1");
    $row = mysqli_fetch_array($query);
    $content = $row['path'];
    $handle = fopen($content, 'r');
?>

<img src="<?php echo $handle ?>;" alt="something">

1 个答案:

答案 0 :(得分:0)

首先, PDF 文件不是图片,因此不能与<img>元素一起使用。

其次,在您的示例中,$handle是指向文件的指针,因此,即使$row['path']是实际图像的URI(例如JPG或PNG),您仍然无法以这种方式使用$handle

另一方面,如果你的文件是JPG,你可以简单地使用它,如下所示

<img src="<?php echo $row['path']; ?>">

前提是$row['path']可通过互联网公开获取(或者,至少可供尝试加载该页面的客户端使用)。

但是,如果Web浏览器无法访问您的文件(例如JPG),您可以对其BLOB进行“base64编码”并将其作为数据直接插入到image元素中,如下所示:

<img src="<?php echo 'data:image/jpg;base64,'.base64_encode(file_get_contents($row['path'])); ?>">

最后,要回到PDF文件,在网页上呈现它的一种方法是在<iframe>内打开它,如下所示:

<iframe src="<?php echo $row['path']; ?>"></iframe>

再次,前提是网络浏览器可以访问$row['path']

我希望这有帮助! :)