2017-01-23 20 views
0

MYSQLiからpdfにいくつかのデータを保存しようとしています。ファイルはブラウザでダウンロードされますが、開こうとするとAdobeが「壊れました」と叫びます。ここに私のコードは:PHP、fpdf、破損したファイルのダウンロード

ob_start(); 
require('fpdf.php'); 
$pdf = new FPDF(); 
$pdf->AddPage('A4'); 
$pdf->SetFont('Arial','',16); 
$line="Użytkownik: ".$login." Miesiąc: ".$miesiac." Dzień: ".$dzien; 
$pdf->Cell(0,5,$line); 
$query="select * from ".$prefix."_Przychody where Login='$login'"; 
$start=mysqli_query($link, $query); 
while($dane=mysqli_fetch_assoc($start)) 
{ 
    $data=date("Y-m-").$dzien; 
    if($dane['Data']==$data) 
    { 
     $line="Opis: ".$dane['Opis']." Kategoria: ".$dane['Kategoria_przychodu']." Kwota: ".$dane['Kwota']."."; 
     $pdf->Cell(0,5,$line); 
     $y = $pdf->GetY(); 
     $pdf->SetXY(0,$y+10); 
    } 
} 

$query="select * from ".$prefix."_Wydatki where Login='$login'"; 
$start=mysqli_query($link, $query); 
while($dane=mysqli_fetch_assoc($start)) 
{ 
    $data=date("Y-m-").$dzien; 
    if($dane['Data']==$data) 
    { 
     $line="Opis: ".$dane['Opis']." Kategoria: ".$dane['Kategoria_przychodu']." Kwota: ".$dane['Kwota']."."; 
     $pdf->Cell(0,5,$line); 
     $y = $pdf->GetY(); 
     $pdf->SetXY(0,$y+10); 

    } 
} 
$name=$login.".pdf"; 
$pdf->Output('D',$name,true); 
ob_end_flush(); 

私はここにあります。私はいくつかの日付のためのデータを保存しようとすると、ポーランド人の名前を使用して申し訳ありませんが、私のデータベースです:D

+0

は、あなたが、その後、生成されたPDFを開くことができますサーバー上にある場合、またはFTPをシステムにFTPする場合は、 – RiggsFolly

+0

PS:あなたは 'ob_start()'と 'ob_flush()'を必要としません。おそらくそれは問題を引き起こします。 – RiggsFolly

+0

私はそれをサーバに保存します。私はそれを開くことができますが、ローカルのコンピュータに保存する必要があります –

答えて

0

今私はPDFファイルを作成し、私のサーバーに保存します。このファイルは大丈夫です。私はそれを開いてAdobeで読むことができますが、ローカルのコンピュータに保存して開こうとすると、Adobeは再び壊れてしまいます。上記の記事でPDFファイルを作成するための私のコードであり、ここでローカルコンピュータにサーバーからダウンロードするために私のコードです:

if($zapis==1) 
{ 
$file = $login.".pdf"; 
if(!$file){ 
header('Location: index.php?w=laczne_podsumowanie'); 
} 
else 
{ 
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=$file"); 
header("Content-Type: application/pdf"); 
header("Content-Transfer-Encoding: binary"); 
readfile($file); 
} 
} 

今私が破損していないPDFファイルをダウンロードするためのコードを編集することができますか。 私はどんな答えにも感謝します。 平和:)

EDIT:前

flush(); 
ob_clean(); 

::私が使用することによって、これを修復し、サーバー上のディスクにPDFを保存する場合

readfile($file); 
関連する問題