如何将图像和文本插入到FPDF PDF生成的文件中

时间:2015-10-13 10:18:12

标签: php fpdf



<?php
mysql_connect('localhost','root','');
mysql_select_db('pdf');
require('fpdf.php');

if(isset($_POST['submit'])){
	$name = $_POST['name'];
	$email = $_POST['email'];
	$comment = $_POST['comment'];
	$url = $_POST['url'];
$pdf=new FPDF();


$pdf->AddPage();
$pdf->Image('logo.png',18,13,33);

$pdf->SetFont('Arial','B',14);
$pdf->Cell(50,10, $name,1,1);
$pdf->Cell(50,10, $email,1,7);
$pdf->Cell(50,10, $url,1,1);
$pdf->Cell(50,10, $comment,1,1);


$pdf->SetFont('Arial','B',7); 

$pdf->SetFont('Arial','B',6);
$pdf_name=$pdf->Output("","S"); 

if(isset($_POST['submit'])){
	mysql_query("INSERT INTO pdf VALUES('','".mysql_real_escape_string($pdf_name)."')");
	echo "insert successful!";
}
}
?>
&#13;
&#13;
&#13; 这是我将pdf保存到mysql数据库中作为字符串的部分我想问如何在pdf-&gt; output()中将其保存为blob数据。
&#13;
&#13;
<?php
mysql_connect('localhost','root','');
mysql_select_db('pdf');

$query=mysql_query("SELECT * FROM pdf WHERE id='11'");
$row=mysql_fetch_assoc($query);

$content = $row['pdf_file'];
header('Content-Type: application/pdf');
header("Content-Length: ".strlen(content));
print $content;

?>
&#13;
&#13;
&#13;

这是我显示保存为blob的pdf文件的部分,但它返回错误,无法显示该文件。

1 个答案:

答案 0 :(得分:0)

将数据插入Db时出现问题,

如果你将blob数据(或二进制数据)插入sql那么最好不要用来转义字符串。因为可以通过用户可以上传的pdf进行sql注入,但是你自己生成PDF,所以做sql禁令的风险很高(可能是0)。

mysql_query("INSERT INTO pdf VALUES('','".mysql_real_escape_string($pdf_name)."')");

mysql_query("INSERT INTO pdf VALUES('','".$pdf_name."')");

如果您需要使用base64_encode来保持数据不会出现任何类型的字符问题,这是保持Blob数据或在网络中传输数据的常用方法。为了得到它,请使用base64_decode。

即,如果要将数据插入到db中,请使用base64_encode(),而在从db中选择数据后,必须使用base64_decode()