2015-10-13 86 views
0

如何插入圖片和文字到FPDF PDF生成的文件

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

 
if(isset($_POST['submit'])){ 
 
\t $name = $_POST['name']; 
 
\t $email = $_POST['email']; 
 
\t $comment = $_POST['comment']; 
 
\t $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'])){ 
 
\t mysql_query("INSERT INTO pdf VALUES('','".mysql_real_escape_string($pdf_name)."')"); 
 
\t echo "insert successful!"; 
 
} 
 
} 
 
?>
這是我保存PDF到mysql數據庫作爲字符串我想請問我怎樣才能將其保存爲BLOB數據在PDF-部分>輸出()。
<?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; 
 

 
?>

這是我顯示PDF文件保存爲BLOB,但返回錯誤它不能顯示該文件的一部分。

回答

0

問題是,同時將數據插入到你的數據庫,

如果您插入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。

即,如果你想插入數據到數據庫,使用base64_encode(),而從數據庫選定的數據後,你必須使用base64_decode()