将使用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']; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |