2010-11-19 5 views
3

Ich bin ein PDF-Dokument mit FPDF Speichern Sie den folgenden Code verwenden ...FPDF ouput() speichert Datei mit HTML-Erweiterung

$pdf->Output('doc.pdf','D'); 

... aber es speichert es als 'doc.pdf.html'

Warum wird die HTML-Erweiterung hinzugefügt?

+0

Ich habe das Problem eingegrenzt. Es passiert nur in Safari und Chrome. Firefox funktioniert perfekt. – Chad

Antwort

11

Das Problem in meinem Fall war, dass ich das Skript nicht beendete, nachdem ich die PDF-Datei ausgedruckt hatte. Ich benutzte ein Framework und ließ es zu Ende, was das Problem verursachte. Also fügen Sie einfach eine "Exit" -Anweisung hinzu und sie sollte es beheben.

+0

Danke @Chad Ich hatte genau dieses Problem und das hat es gelöst –

0

Es trägt nicht eine '.html' Erweiterung:

Quellcode:

case 'D': 
    //Download file 
    if(ob_get_length()) 
     $this->Error('Some data has already been output, can\'t send PDF file'); 
    header('Content-Type: application/x-download'); 
    if(headers_sent()) 
     $this->Error('Some data has already been output, can\'t send PDF file'); 
    header('Content-Length: '.strlen($this->buffer)); 
    header('Content-Disposition: attachment; filename="'.$name.'"'); 
    header('Cache-Control: private, max-age=0, must-revalidate'); 
    header('Pragma: public'); 
    ini_set('zlib.output_compression','0'); 
    echo $this->buffer; 
break; 

so muss das Problem woanders sein.

+0

Ich weiß, dass der $ Name, den er eingibt, tatsächlich mit .pdf und nicht mit .html endet. – Chad