Mam skrypt php, który generuje raport pdf. Kiedy przechodzimy do zapisywania dokumentu PDF, nazwa pliku, którą sugeruje Acrobat, to report_pdf, ponieważ skrypt php nazywa się report_pdf.php. Chciałbym dynamicznie nazwać plik pdf, więc nie muszę wpisywać odpowiedniej nazwy raportu za każdym razem, gdy go zapisuję.użycie nagłówka() do przepisania nazwy pliku w adresie URL dla dynamicznego pdf
wyjściowa na grupie prasowej, ktoś zasugerował to, gdzie filename="July Report.pdf"
jest zamierzona nazwa raportu
<?
header('Content-Type: application/pdf');
header('Content-disposition: filename="July Report.pdf"');
Ale to nie działa. Czy robię to źle, czy to działa w ogóle? Czy to jest praca dla mod_rewrite?
Więc próbowałem zarówno
header('Content-disposition: inline; filename="July Report.pdf"');
i
header('Content-disposition: attachment; filename="July Report.pdf"');
(nie w tym samym czasie) i ani pracować dla mnie. Czy to jest problem z moim hostingiem? Z tego url, oto mój kod:
<?
header('Content-disposition: inline; filename="July Report.pdf"');
// requires the R&OS pdf class
require_once('class.ezpdf.php');
require_once('class.pdf.php');
// make a new pdf object
$pdf = new Cpdf();
// select the font
$pdf->selectFont('./fonts/Helvetica');
$pdf->addText(30,400,30,'Hello World');
$pdf->stream();
?>
Jeśli chcesz plik do pobrania (i nie openend w przeglądarce), dodać te: header ("Content-Transfer-Encoding: binary"); nagłówek ("Content-Type: application/force-download"); W przeciwnym razie powinieneś jeszcze dołączyć nagłówek linii ("Content-Type: application/pdf") , aby przeglądarka wiedziała, jak otworzyć plik. – eCaroth
Może również zabraknąć długości pliku - niektóre przeglądarki poprawnie otwierają pliki, a niektóre nie. Aby to uzyskać, zrzuć wszystkie dane wyjściowe do bufora wyjściowego, a następnie wydrukuj nagłówki i określ je jako 'Content-Length:' ** strlen bufora wyjściowego *** – eCaroth
Tymczasowo skomentuj te linie nagłówka php i zobacz wynik . NIE powinien zawierać żadnych błędów PHP. Zastosuj z powrotem nagłówki po naprawieniu jakichkolwiek błędów, jeśli tak. –