将使用 FPDF 创建的 pdf 插入/保存到数据库中

使用 fpdf 库生成 PDF 文件并将文件插入数据库。


我正在使用以下代码:


$content = $pdf->Output($pname.'', 'S');


$sql = "INSERT into data(name) values('".addslashes($content)."')";


if ($conn->query($sql) === TRUE) {

    echo "success";


} else {

    echo "Error: ";

}


$conn->close();

但是使用这个,保存在数据库中的文件是二进制格式而不是 PDF 格式,下载后似乎不正确......


我该如何解决这个问题并让我的文件以扩展名保存到数据库中.pdf?


红颜莎娜
浏览 143回答 1
1回答

慕姐4208626

您可以使用base64_encode()instead of addslashes()this 来防止由于转换而导致二进制数据出现问题。base64_decode()从数据库读取时,您需要通过使用来扭转这一局面。更好的选择是在您的数据库中使用 BLOB 列和 PHP 数据库驱动程序的 LOB 功能。对于 PDO,这将是这样的:$pdo = new \PDO(...);$fp = fopen('data://' . $content, 'rb');$stmt = $pdo->prepare("insert into data (name) values (?)");$stmt->bindParam(1, $fp, PDO::PARAM_LOB);$stmt->execute();该解决方案将未修改的二进制数据存储在数据库中。
打开App,查看更多内容
随时随地看视频慕课网APP