PHP, fpdf, загрузка поврежденного файла
Я пытаюсь сохранить некоторые данные из MYSQLi в PDF. Файл загружается браузером, но когда я пытаюсь открыть его, Adobe выкрикивает мне "Он поврежден". Вот мой код:
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
1 ответ
Теперь я создаю 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. Буду благодарен за любой ответ. Мир:)
РЕДАКТИРОВАТЬ: я чинить это с помощью:
flush();
ob_clean();
до:
readfile($file);