Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problemy z download
Forum PHP.pl > Forum > PHP
swiety
hej, mam nastepujacy problem, chce udostepnic pliki do sciagania, uzywam do tego celu funkcji readfile(), wszystko niby gra, pliki sie sciagaja, ale np jpg, albo exe po sciagnieciu nie daja sie otworzyc, kiedy sciagam plik pdf to wszystko jest ok, tutaj moj cod:
  1. <?php
  2. $id=$_REQUEST['ID'];
  3.  
  4. $database->setQuery("SELECT file_path, file_name FROM #__tryouts_files WHERE id = $id");
  5. $file = $database->loadObjectList();
  6. header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  7. header("Content-type: application/octet-stream");
  8. header('Content-Length: ' . filesize($file[0]->file_name));
  9. header('Content-Disposition: attachment; filename="' . basename($file[0]->file_name) . '"');
  10. readfile($file[0]->file_path);
  11. exit();
  12. //include("down_file.php");
  13. ?>

z gory dzieki za kazda pomoc, biggrin.gif
mwojcik
A czy nie dajesz wczesniej jakiegos kodu html do wyswietlenia ? Albo chociaz spacji ? Jezeli przed funckja header umiescisz jakikolwiek kod to wtedy naglowki zostana wyslane blednie albo wyswietli ci sie blad "headers already sent", oznaczajacy, ze naglowki zostaly juz wyslane do przegladarki.

Mozesz zrobic buforowanie danych, ktora maja zostac wyslane do przegladarki - wtedy bedziesz mogl uzyc funkcji header bez problemow.

Przykladowy kod :
  1. <?php
  2. //tutaj jakis kod co ma sie wykonac 
  3. //jakis kod z funkcja header
  4. ?>
swiety
niestety dalej to samo, moj kod od poczatku do header():
  1. <?php
  2. defined( '_VALID_MOS' ) or die( 'Direct Access to this script is not allowed');
  3.  
  4. $image_path = $GLOBALS[mosConfig_live_site]."/templates/".$GLOBALS[cur_template]."/images/";
  5.  
  6. $mainframe->setPageTitle ("Tryouts");
  7.  
  8.  $query = 'SELECT * FROM #__tryouts_cat WHERE published="1" ORDER BY id';
  9.  $database->setQuery( $query );
  10.  $cat = $database->loadObjectList();
  11.  
  12.  
  13. if(isset($_REQUEST['ID'])&&($_REQUEST['download']==1)) {
  14.  
  15. $id=$_REQUEST['ID'];
  16.  
  17. $database->setQuery("SELECT file_path, file_name FROM #__tryouts_files WHERE id = $id");
  18. $file = $database->loadObjectList();
  19. header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  20. header("Content-type: application/octet-stream");
  21. header('Content-Length: ' . filesize($file[0]->file_name));
  22. header('Content-Disposition: attachment; filename="' . basename($file[0]->file_name) . '"');
  23. readfile($file[0]->file_path);
  24. exit();
  25.  
  26. ?>
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.