Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Download w PHP
Forum PHP.pl > Forum > Przedszkole
simon111
Witam

Udało mi się spłodzić skrypt, który wrzuca pliki do katalogu na serwerze. Niestety nie mam pomysłu jaki napisać plik, który by te pliki wyświetlał i można byłoby je po kliknięciu ściągnąć na HDD. Bardzo proszę o pomoc w tej sprawie, bo nic mi już nie przychodzi do głowy. Z góry dziękuję za wszelkie sugestie.

Pozdrawiam Simon.
maniekl2
no żeby pobierać musisz po prostu stworzyć podstronę z linkiem do danego pliku przykładowo www.twojastrona.pl/pliki/download.zip

możesz zrobić skrypt w tym stylu
  1. <?php
  2. echo "<a href=http://twojastrona.pl/pliki/".$_GET['plik']."> Download</a>";
  3. ?>


i przesyłać nazwę pliku zmienna GET
druga opcja to baza danych
simon111
Bazę danych chciałem pominąć i zrobić to tylko na plikach. A chodzi mi konkretnie o to, żeby skrypcik PHP przeglądał dany folder i na stronce wyświetlał automatycznie wszystkie pliki gotowe do pobrania z tego właśnie folderu...
Jakiś pomysł na to? sadsmiley02.gif
maniekl2
http://pl.php.net/manual/pl/ref.dir.php
YaQzi
Cytat(maniekl2 @ 30.10.2008, 22:19:47 ) *


Albo to, albo metoda "na lenia", czyli dajesz link do katalogu z plikami i jeśli nie ma w nim pliku index powinna się wyświetlić lista plików. Klikasz i pobierasz. ;P
simon111
Ok, poszedłem za waszą radą i skołowałem coś takiego:

  1. <?php
  2. $directory="folder";
  3. $dir=opendir($directory);
  4. $file_list="<a href='folder/$file_name'>";
  5. while($file_name=readdir($dir))
  6.    {
  7.    if(($file_name!=".")&&($file_name!=".."))
  8.        {
  9.        $file_list.="<LI>$file_name";
  10.        }
  11.    }
  12. $file_list.="</a>";
  13. closedir($dir);
  14. Pliki w $directory:
  15. $file_list";
  16. ?>


Ale teraz wyświetla mi tylko link do pliku, a ja nie chce tam przechodzić tylko pobrać. Czy powinienem dodać jakiś atrybut, czy może dodać jakiegoś header'a. dry.gif
maniekl2
Jak klikniesz w ten link to powinno pojawić się okienko zapisz lub otwórz za pomocą. Chyba że masz tam pliki *.php lub *.html itp. Jakie masz tam pliki ?
simon111
Tam są zwykłe tekstowe pliczki *.txt, w przyszłości dorzucę może *.doc, ewentualnie *.pdf...
maniekl2
pliki *.txt się otwierają w przeglądarce, zaś pliki *.doc i *.pdf trzeba już pobrać. Więc jak chcesz mieć mniej problemów to wrzucaj na serwer te właśnie pliki.
golaod
A może tak zamiast linków bezpośrednio do pliku napisać skrypt wysyłający do przeglądarki plik (np. dzięki parametrom z get) ? Dzięki temu nawet txt się nie otworzy w przeglądarce smile.gif
simon111
Wrzuciłem sobie właśnie doc'a, ale efekt ten sam, tzn. wyświetla mi stronę "Index of..." gdzie mam wyświetlone pliki w katalogu wraz z katalogiem głównym na samej górze. Jak dopiero kliknę na pliczek to wyskakuje okienko z możliwością pobrania.
Nie chciałbym, żeby przerzucało mnie do katalogu (tylko od razu robiło to pobieranie) ponieważ wówczas user może wędrować po całej strukturze folderów na stronie.

A propos wypowiedzi golaod: To w jaki sposób należałoby użyć tego get'a, bo jak dotąd to spotkałem się z nim tylko przy przesyłaniu formularzy?
maniekl2
ten twój skrypt jest zły spróbuj tak i plik doc :
  1. <?php
  2. $directory="folder";
  3. $dir=opendir($directory);
  4.  
  5.  
  6. while($file_name=readdir($dir))
  7.   {
  8.   if(($file_name!=".")&&($file_name!=".."))
  9.       {
  10. $file_list .="<li><a href=folder/".$file_name."'>".$file_name."</a></li>";
  11.      
  12.       }
  13.   }
  14.  
  15. closedir($dir);
  16. Pliki w $directory:
  17. $file_list";
  18. ?>
simon111
Brawo maniekl2.
Działa wyśmienicie (pominąłeś tylko jeden apostrof w 11 linii - ale to szczegół).
Naprawde serdecznie dziekuję za pomoc, życzę pomyślnych wiatrów, jeszcze raz dzieki, pozdrawiam, nara.
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.