使用上述技术,我想创建一个PDF,将其存储在我的数据库中,并通过电子邮件发送。只需点击一个按钮即可完成。
我也想调用它并让它能够显示超链接。
我对FPDF很新。因此,我试图非常缓慢地开始。
我从这个链接开始stackoverflow Q
我将他的代码的两个部分放在同一页面中并尝试使用单独的页面。我做了建议的更改/添加,甚至进行了逐行比较。
我仍然收到消息,“格式错误:不是PDF或损坏的”
如果我只是$ pdf->输出();我得到pdf来显示。它既可以是字符串输出的方式,也可以是header()函数。除非我的列设置不正确,否则它不是存储方法。 BUt blob是一个blob,对吧?
如果您愿意,我可以上传已清理的代码。请告诉我有什么可以帮助解决这个问题。
由于
JJ
这是请求的代码 这是我输入的地方:
<?php
session_start();
include "server.php";//my file to connect to db
require('fpdf.php');
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$content = $pdf->Output("", "S"); //return the pdf file content as string
$sql = "update table set table_pdf= '".addslashes($content)."' " .
"where table_id = '188'";
mysql_query($sql);
//here's where I retrieve it
$sql2 = "select table_pdf from table where table_id = '188'";
$result2 = mysql_query($sql2);
$rs = mysql_fetch_assoc($result2);
$content2 = $rs['rdngs_hdr_pdf'];
header('Content-Type: application/pdf');
header("Content-Length: ".strlen(content2));
header('Content-Disposition: attachment; filename=myfile.pdf');
print $content2;
?>
就像我说的,我在上面的另一个问题链接上尝试了其他想法。现在它只是在那里有addslashes的版本。
感谢您的帮助。
答案 0 :(得分:1)
试一试。不要使用addslashes
来转义内容,而是尝试使用unpack
将其置于二进制表示中:
$content = $pdf->Output("", "S"); //return the pdf file content as string
$data = unpack("H*hex", $content);
$sql = "update table set table_pdf= " . 0x".$data['hex']." . " " .
"where table_id = '188'";
要检索数据,您应该只能进行选择,然后输出内容,就像您现在一样。