Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Download pliku
Forum PHP.pl > Forum > Przedszkole
OlgaG
Mam problem ze skryptem do pobiernia pliku. Generalnie chodzi o to, że na stronie jest link do CV. Jak się na niego kliknie to zacznie się pobieranie pliku. Łatwizna:

Link do pliku ma postać:


  1. <a href="http://www.mojastrona.eu/download.php?name=CV.doc">Moje CV</a>


a plik download.php:

  1. <?php
  2.  
  3. $name = $_GET['name'];
  4. $sciezka = "./documents/";
  5.  
  6. function sprawdzplik($name){
  7.  
  8. $pliki = array(
  9.  
  10. 1=>'CV.doc'
  11. );
  12.  
  13. return array_search($name, $pliki);
  14.  
  15. }
  16.  
  17. function wyslij($fileName, $sciezka){
  18.  
  19. if(!file_exists($sciezka.$fileName)){
  20.  
  21. echo "Nie ma takiego pliku na serwerze!";
  22. return; 
  23. }
  24.  
  25. $fd = fopen($scieka.$fileName, "r");
  26. $size = filesize($sciezka.$fileName);
  27. $zawartosc = fread($fd, filesize($sciezka.$fileName));
  28. fclose($fd);
  29.  
  30. header("Content-Type: application/msword");
  31. header("Content-Lenght: $size");
  32. header("Content-Description: attachment: filename = $fileName");
  33.  
  34. echo $zawartosc;
  35. }
  36.  
  37. if(isSet($_GET['name'])){
  38.  
  39. if(!sprawdzplik($_GET['name'])){
  40.  
  41. echo "Nie ma takiego pliku na serwerze!";
  42. }
  43.  
  44. else{
  45.  
  46. wyslij($_GET['name'], $sciezka);
  47. }
  48. }
  49.  
  50. else{
  51.  
  52. echo "Nie ma takiego pliku na serwerze!";
  53. }
  54.  
  55. ?>


Plik CV.doc znajduje się w katalogu documents. Problem w tym, że jak klikam na link to mi chce ściągać plik download.php a nie CV.doc sciana.gif
Kicok
http://pl2.php.net/header - poszukaj w przykładach jak ma poprawnie wyglądać nagłówek Content-Dispisition (zwróć szczególną uwagę na średniki/dwukropki)
OlgaG
Masz rację. Tutaj był babol, ale przede wszystkim to była błędna ścieżka do pliku. Jak dałam:

  1. <?php
  2. $filePath="/home/wizytowk/public_html/documents/";
  3. ?>


to wszystko śmiga:)

Pełen kod jakby ktoś kiedyś potrzebował:

Link do ściągania:

  1. <a href="http://www.mojastrona.eu/download.php?name=CV.doc">


I plik download.php:

  1. <?php
  2.  
  3. $filePath = "/home/wizytowk/public_html/documents/";
  4. $fileName = $_GET['name'];
  5.  
  6. $fd = fopen($filePath.$fileName, "r");
  7. $size = filesize($filePath.$fileName);
  8. $contents = fread($fd, $size);
  9.  
  10. fclose($fd);
  11.  
  12. header("Content-Type: application/msword");
  13. header("Content-Length: $size");
  14. header("Content-Disposition: attachment; filename = $fileName");
  15.  
  16. echo $contents;
  17.  
  18.  
  19. ?>
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.