繁体   English   中英

PHP,fpdf,损坏的文件下载

[英]PHP, fpdf, damaged file download

我尝试将一些数据从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

现在,我创建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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM