问题描述
我试图通过HTML和PHP在XAMPP服务器上显示存储在MariaDB数据库中的PDF
代码:
<object data="data:application/pdf;base64,<?PHP echo base64_encode($this->view_data[0]["test"]); ?>" type="application/pdf" style="height:100%;width:100%"></object>
它适用于500kB的PDF,但对于较大的PDF,页面保持空白。
我的XAMPP conf文件中需要做任何配置吗?我试图增加几乎所有这些东西似乎都没有效果
编辑:
我正在使用"SELECT test from PDF WHERE testID = 1"
和功能
public function dbQuery($query,$params = []){ $stmt = $this->connect()->prepare($query); $stmt->execute($params); if (explode(' ',$query)[0] == "SELECT"){ $result = $stmt->fetchAll(); $this->close($this); return $result; } else{ $this->close($this); return $stmt->fetchAll(); } $this->close($this); }
填充$ this-> view_data变量,以便将PDF存储在$ this-> view_data [0] [“ test”]
对于blobsize
解决方法
我找到了答案。这是因为我没有对LOB(大对象)使用PDO语句 与
$db = new PDO("mysql:host=".$dbhost.";dbname=".$dbname.";charset=utf8",$dbuser,$dbpwd);
$stmt = $db->prepare("SELECT test FROM PDFs WHERE testID=?");
$stmt->execute(array($_GET['testID']));
$stmt->bindColumn(1,$lob,PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-Type: application/pdf");
fpassthru($lob);
有效。