我有一个保存在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">
答案 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']
。
我希望这有帮助! :)