我正在嘗試通過 HTML 和 PHP 在 XAMPP 服務(wù)器上顯示存儲(chǔ)在 MariaDB 數(shù)據(jù)庫中的 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,但對(duì)于較大大小的 PDF,頁面保持空白。我的 XAMPP conf 文件中是否需要進(jìn)行任何配置?我嘗試增加幾乎所有這些似乎都不起作用編輯:我正在使用 "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 存儲(chǔ)在 $this->view_data[0]["test"] 中它適用于所有 blobsize <= 500kB 的內(nèi)容。我嘗試設(shè)置 PDO MYSQL_ATTR_MAX_BUFFER_SIZE 但該變量甚至沒有初始化。
1 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
我找到了答案。這是因?yàn)槲覜]有對(duì) LOB(大對(duì)象)使用 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);
有用。
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)
0/150
提交
取消