Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie plików PDF
Forum PHP.pl > Forum > PHP
johny-cage
Chce pobierać pliki PDF korzystając z nagłówków. Zatem mam taki oto kod

  1. <?php
  2. $plik = $_GET['plik'];
  3.  
  4. $filename = basename($plik);
  5. header("Content-Disposition: attachment; filename=".$filename);
  6. header("Content-type: application/pdf");
  7.  
  8. $plik2 = './jakisfolder/'.$plik;
  9. include $plik2;
  10. ?>


Niestety pliki PDF pobierają się z jakimś błędem i są niemożliwe do odczytania. Dodam że raczej nie jest to błąd moich plików PDF bo dla stestowania pobrałem losowo plik PDF i nadal nie można go odczytać.

W czym tkwi błąd?
Kicok
Zamiast include użyj readfile" title="Zobacz w manualu PHP" target="_manual. Możliwe że gdzieś w środku tego PDF'a zaplątało się jakieś "<?" i parser wywala błędy.
mielu
sprawdź nazwę pliku u mnie talie coś działa chyba że się rąbnę w nazwie pliku lub użyje polskie znaki
Speedy
php w specyficzny sposób traktuje pliki *.pdf. W komentarzach w manualu php wyczytałem kiedyś sposób na to, bo sam miałem taki sam problem.

Spróbuj otworzyć pdf-a tak:

  1. <?php
  2.  
  3. $plik = $_GET['plik'];
  4.  
  5. header('Content-type: application/pdf');
  6.  
  7. header('Pragma: public');
  8. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  9. header('Content-Length: '.filesize($plik));
  10. header('Content-Disposition: attachment; filename="'.$plik'"');
  11.  
  12. readfile($plik);
  13.  
  14. ?>
johny-cage
po takim kodzie dostaje komunikat następującej treści:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/johnyc/public_html/english/pobierz2.php on line 10
lusaczek
Cytat(johny-cage @ 20.06.2007, 12:47:09 ) *
po takim kodzie dostaje komunikat następującej treści:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/johnyc/public_html/english/pobierz2.php on line 10


  1. <?php
  2.  
  3. $plik = $_GET['plik'];
  4.  
  5. header('Content-type: application/pdf');
  6.  
  7. header('Pragma: public');
  8. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  9. header('Content-Length: '.filesize($plik));
  10. header(Content-Disposition: attachment; filename=".$plik."");
  11.  
  12. readfile($plik);
  13.  
  14. ?>
legorek
  1. <?php
  2.  
  3. $plik = $_GET['plik'];
  4.  
  5. header('Content-type: application/pdf');
  6.  
  7. header('Pragma: public');
  8. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  9. header('Content-Length: '.filesize($plik));
  10. header('Content-Disposition: attachment; filename="'.$plik.'"');
  11.  
  12. readfile($plik);
  13.  
  14. ?>


P.S. Filtruj dane od użytkownika!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.