为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
红颜莎娜 2022-12-11 16:21:37
使用 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?
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您可以使用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();

该解决方案将未修改的二进制数据存储在数据库中。


查看完整回答
反对 回复 2022-12-11
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信