如何在HTML中嵌入数据库/PHP中的PDF文件
我想从MySQL数据库中的BLOB中获取PDF文件。显示PDF的PHP工作正常:如何在HTML中嵌入数据库/PHP中的PDF文件,php,html,mysql,blob,embed,Php,Html,Mysql,Blob,Embed,我想从MySQL数据库中的BLOB中获取PDF文件。显示PDF的PHP工作正常: <?php $mysqli = new mysqli("192.168.1.11", "root", "password", "DB"); if ($mysqli->connect_errno) { die("Connection refused: " . $mysqli->connect_error); } try{ $sql = "SELECT file FROM tabl
<?php
$mysqli = new mysqli("192.168.1.11", "root", "password", "DB");
if ($mysqli->connect_errno) {
die("Connection refused: " . $mysqli->connect_error);
}
try{
$sql = "SELECT file FROM table WHERE id = 1";
$result = mysqli_query($mysqli, $sql);
$row = mysqli_fetch_object($result);
header('Content-type: application/pdf');
echo $row->file;
}catch(Exception $e){
echo "caught exception: ", $e->getMessage(), "\n";
}
?>
现在我想把这个PDF文件嵌入到HTML中。我试过这样的方法:
<?php
$pdf = "MY_PDF_FILE.PDF"; ◄
echo <<<BLOCK
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Embeded PDF</title>
</head>
<body>
<embed src="$pdf" type="application/pdf" height="25%" width="25%">
</body> ▲
</html>
BLOCK;
?>
我试图保存$row->文件使用$pdf=$row->file在$pdf
中的code>代码>。当我尝试调用我网站的index.php时,它总是显示PDF文件无法显示,我只看到浏览器的PDF查看器
有人能帮我吗/ 您可以使用iframe元素来显示PDF。
您可以将base64编码的blob加载到iframe的data属性。
在您的数据属性中,您需要写:“application/pdf;base64,'在base64字符串之前
<iframe data="data:application/pdf;base64,B64STRINGHERE" type="application/pdf" style="height:200px;width:60%"></iframe>
所以你必须做一些类似的事情:
<?php
// Connection to DB + Retrive blob
// We assume that your '$row->file' contains Blob data.
// So encode '$row->file' to base 64
$pdf = base64_encode($row->file); // BLOB TO BASE64
echo <<<BLOCK
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Embeded PDF</title>
</head>
<body>
<iframe data="data:application/pdf;base64,$pdf" type="application/pdf" style="height:200px;width:60%"></iframe>
</body>
</html>
BLOCK;
?>
$pdf
应该是显示pdf文件的第一个脚本的URL。可能是Thank barmar的副本,它起作用了:)很抱歉这个简单的问题