加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

将使用FPDF php库创建的PDF保存在MySQL blob字段中

发布时间:2020-12-13 21:35:02 所属栏目:PHP教程 来源:网络整理
导读:我需要使用 fpdf库创建一个pdf文件,并将其保存在MySQL数据库的blob字段中. 问题是,当我尝试从blob字段中检索文件并将其发送到浏览器进行下载时,已下载的文件已损坏且无法正确显示. 如果我立即将它发送到浏览器而不将其存储在数据库中,则会正确显示相同的pdf
我需要使用 fpdf库创建一个pdf文件,并将其保存在MySQL数据库的blob字段中.
问题是,当我尝试从blob字段中检索文件并将其发送到浏览器进行下载时,已下载的文件已损坏且无法正确显示.

如果我立即将它发送到浏览器而不将其存储在数据库中,则会正确显示相同的pdf文件,因此在数据库中插入时,某些数据似乎会被破坏.

我的代码是这样的:

$pdf = new MyPDF(); //class that extends FPDF and create te pdf file
$content = $pdf->Output("","S"); //return the pdf file content as string
$sql = "insert into mytable(myblobfield) values('".addslashes($content)."')";
mysql_query($sql);

存储pdf,像这样:

$sql = "select myblobfield from mytable where id = '1'";
$result = mysql_query($sql);
$rs = mysql_fetch_assoc($result);
$content = stripslashes($rs['myblobfield']);
header('Content-Type: application/pdf');
header("Content-Length: ".strlen(content));
header('Content-Disposition: attachment; filename=myfile.pdf');
print $content;

将其发送到浏览器进行下载.
我究竟做错了什么?

如果我将我的代码更改为:

$pdf = new MyPDF(); 
$pdf->Output(); //send the pdf to the browser

文件正确显示,所以我认为是正确生成的,问题出在db中.

提前致谢.

解决方法

你不应该剥去任何(背面)斜杠.添加它们时,它们将在查询中用作转义字符,并且不会显示在字段中.

尝试改变这个

$content = stripslashes($rs['myblobfield']);

进入这个:

$content = $rs['myblobfield'];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读