Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Download pliku, Błędna ścieżka do pliku?
OlgaG
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 8.04.2007

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
OlgaG
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 8.04.2007

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował OlgaG 14.09.2007, 07:43:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 09:48