PHP MYSQL FPDF geri alınmasına pdf dize blob olarak depolanır

1 Cevap php

Yukarıdaki teknolojileri kullanarak, ben, bir PDF oluşturmak benim db saklamak, ve e-posta istiyorum. Hepsi bir düğmeye tıklama ile.

Ben de onu çağırmak ve bir köprü ile görüntülemek edebilmek istiyorum.

Ben FPDF için çok yeni. Bu nedenle, çok yavaş başlamak için çalışıyorum.

Ben bu bağlantıyı stackoverflow Q ile başladı

Ben aynı sayfada içine onun kodunun iki parça koyun ve ayrı sayfalara ile çalıştı. Ben önerilen değişiklikler / eklemeler yapılmış ve hatta çizgi kıyasla bir çizgi yaptı.

Hala mesajı alıyorum, "biçim hatası: bir PDF veya bozuk"

Eğer ben sadece $ pdf-> Çıkış (); Ben pdf görüntülemek için olsun. Ya dize Çıktı ediliyor yolu, ya da başlık () fonksiyonu bulunuyor. Benim sütun ayarları hatalı olmadığı sürece, depolama yöntemi değil. Ama blob sağ, bir damla mı?

Eğer isterseniz, ben dezenfekte kodunu yükleyebilirsiniz. Sadece bana bu cevap yardımcı olacağını ne bildirin.

Teşekkürler

JJ

here's the code on request here's where I enter it in:

<?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; 
?>

Dediğim gibi, ben yukarıdaki diğer soru linke diğer fikirler denedi. şu anda sadece addslashes orada sürümü oturur.

Teşekkürler for any help.

1 Cevap

Bu bir şans verin. Bunun yerine içeriği kaçmak için addslashes kullanarak, bir ikili REPRESENATION onu almak için unpack kullanmayı deneyin:

$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'";

Veri almak için size zaten yapıyoruz gibi, sadece içeriğini bir seçme yapmak ve sonra çıkış gerekir.