Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Download dokumentów
Forum PHP.pl > Forum > Przedszkole
KadrO
Witam. Problem mój jest taki. Otóż chciałbym, by download plików (dokumentów) wyglądał u mnie podobnie jak przedstawiony na tym zdjęciu. Mój skrypt wygląda tak :

  1. <?
  2. $sciezka = "dok/";
  3. $lista=array();
  4. $katalog = opendir($sciezka);
  5. while ($plik = readdir($katalog)) {
  6. if (($plik<>".")&&($plik<>"..")) if(!is_dir($sciezka.$plik))
  7.  
  8. $lista[]=$plik;
  9. }
  10.  
  11. closedir($katalog);
  12. sort($lista);
  13.  
  14.  
  15. for ($i=0;$i<count($lista);$i++) {
  16. echo "<br><img src=\"gfx/ikona-pdf.gif\">&nbsp;&nbsp;<a href=\"dok/$lista[$i]\">$lista[$i]</a> $wp $dm";
  17. }
  18. ?>



O co mi chodzi? Otóż nie potrafię (nie wiem jak), pobrać informacje o wielkości plików, rozszerzeniu i ostatniej ich edycji. No i także o ilości pobranych, ale za to to już w ogóle się nie zabieram. Nie potrzebuję pomocy w html czy css, bo wiem jak to wszystko samemu ułożyć, aczkolwiek jakbym nie próbował użyć funkcji filesize, jakoś mi to nie idzie. Przypominam że jestem początkującym. Bardzo prosiłbym o jak najszybszą pomoc.

Z góry dziękuję.
melkorm
Manual

Co do ilości pobrań to baza danych i pobieranie plików przez php.
kadrO
Cytat(melkorm @ 12.06.2011, 16:53:32 ) *
Manual

Co do ilości pobrań to baza danych i pobieranie plików przez php.


Tyle że ja niestety potrzebowałbym czegoś bardziej gotowego. Chyba że oczywiście nie ma takiej możliwości, bo czas mnie goni. sad.gif A to raczej jak poradnik.
melkorm
Jeżeli szukasz gotowca to nie ten dział wink.gif
KadrO
  1. <?
  2. $sciezka = '.';
  3. $katalog = opendir($sciezka);
  4.  
  5.  
  6. ?>
  7.  
  8. <table cellpadding="2" cellspacing="2" align="left">
  9. <tr>
  10. <td> Nazwa pliku </td>
  11. <td> Rozmiar </td>
  12. <td> Data </td>
  13. </tr>
  14.  
  15. <?
  16.  
  17. while ($plik = readdir ($katalog) ) {
  18. if ( (is_file ($plik)) AND (substr ($plik, 0, 1) != '.') ){
  19.  
  20. $wp = filesize ($plik);
  21. $dm = date ('j F Y', filemtime ($plik));
  22.  
  23. echo "<tr>
  24. <td><a href=\"dok/$plik\">$plik</a></td>
  25. <td> $wp</td>
  26. <td>$dm</td>
  27. </tr>";
  28. }
  29. }
  30. print "</table>";
  31. closedir ($katalog);
  32.  
  33.  
  34.  
  35. ?>


Wie ktoś może, czemu gdy zamiast $sciezka = '.'; wpiszę $sciezka = 'dok/'; (czyli katalog z którego chcę by wyświetlały się informacje), nie pojawia się nic? Gdy zostawiam '.' wyświetla pliki z katalogu głównego, a ja chcę z tego właśnie folderu - dok.
nospor
  1. while ($plik = readdir ($katalog) ) {
  2. echo $plik.'<br />';
  3. //.... reszta Twojego kod
  4. }

Może teraz będzie ci jaśniej. A następnym razem sam się pokuś o to banalne debugowanie.
KadrO

  1. <?
  2. $sciezka = '.';
  3. $katalog = opendir($sciezka);
  4.  
  5.  
  6. ?>
  7.  
  8. <table cellpadding="2" cellspacing="2" align="left">
  9. <tr>
  10. <td> Nazwa pliku </td>
  11. <td> Rozmiar </td>
  12. <td> Data </td>
  13. </tr>
  14.  
  15. <?
  16.  
  17. while ($plik = readdir ($katalog) ) {
  18. if ( (is_file ($plik)) AND (substr ($plik, 0, 1) != '.') ){
  19.  
  20. $wp = filesize ($plik);
  21. $dm = date ('j F Y', filemtime ($plik));
  22.  
  23. echo "<tr>
  24. <td><a href=\"dok/$plik\">$plik</a></td>
  25. <td> $wp</td>
  26. <td>$dm</td>
  27. </tr>";
  28. }
  29. }
  30. print "</table>";
  31. closedir ($katalog);
  32.  
  33.  
  34.  
  35. ?>


I podpowiedzi :

  1. while ($plik = readdir ($katalog) ) {
  2. echo $plik.'<br />';
  3. //.... reszta Twojego kod
  4. }


Niestety nadal nie rozumiem sad.gif
Czemu z głównego katalogu wyświetla, a gdy zamiast '.' wpiszę jakiś folder np. dok nie ma nic?
Daiquiri
A próbowałeś wykorzystać w praktyce to, co napisał nospor? Opcjonalnie pomoce z manuala, np. przykład #1.
KadrO
Cytat(Daiquiri @ 13.06.2011, 19:30:08 ) *
A próbowałeś wykorzystać w praktyce to, co napisał nospor? Opcjonalnie pomoce z manuala, np. przykład #1.


Ale jak mam to wypróbować... Gdy wpisuję katalog, tzn. chcę zawartość tego katalogu, to w skrypcie mam zapisane nie tylko wyświetlanie nazw jako linków, ale także dane o rozmiarze plików czy ostatniej modyfikacji... Gdy zastosuję to co zaproponował nospor, to wyświetlają mi się jedynie nazwy, w dodatku wygląda to tak :

.
..
nazwa
nazwa

A nie wyświetla daty czy rozmiaru. Gdy natomiast nie wpiszę żadnego katalogu, zostawię '.', czyli to co mam przy indexie, wyświetla wszystko idealnie...
nospor
No właśnie mistrzu.... gdy zastosujesz to co ja ci napisałem (łaskawie wkoncu po paru postach) to wyświetla ci się tylko nazwa pliku. Naprawdę nie daje ci to nic do myślenia?
Zobacz co robisz:
is_file('nazwapliku')
Nie uważasz że powinienes robic:
is_file('pelnasciezkadopliku/nazwapliku')
?

Czy już jaśniej? Pomyśl proszę troszeczkę. Czym się rózni '.' od 'katalog/' ? No tym ze kropeczka jest w lokalnym katalogu a katalog w swoim katalogu
KadrO
Cytat(nospor @ 13.06.2011, 20:47:42 ) *
No właśnie mistrzu.... gdy zastosujesz to co ja ci napisałem (łaskawie wkoncu po paru postach) to wyświetla ci się tylko nazwa pliku. Naprawdę nie daje ci to nic do myślenia?
Zobacz co robisz:
is_file('nazwapliku')
Nie uważasz że powinienes robic:
is_file('pelnasciezkadopliku/nazwapliku')
?

Czy już jaśniej? Pomyśl proszę troszeczkę. Czym się rózni '.' od 'katalog/' ? No tym ze kropeczka jest w lokalnym katalogu a katalog w swoim katalogu


Robię z tą ścieżką i wyskakuje mi błąd Division by zero. Albo po prostu coś plącze. Może lepiej jakbyś jednak zaprezentował to na przykładzie, bo próbuję i próbuję. Siedzę przy stronie już kilka godzin, bo mam jeszcze sporo do zrobienia i niestety myślenie już nie za bardzo mi o tej porze działa.
nospor
No musisz do $plik dodać sciezke

$plik = 'kat/'.$plik;
i juz.
vokiel
Pamiętacie o DirectoryIterator, prawda?

  1. foreach (new DirectoryIterator($katalog) as $fileInfo) {
  2. $fileName = $fileInfo->getFilename();
  3. if ($fileInfo->isFile()){
  4. $lista[] = pathinfo($fileName, PATHINFO_FILENAME);
  5. }
  6. }


editDown: Masz te zacięcie pedagogiczne smile.gif
nospor
Jest jeszcze masa innych sposobów nie tylko DirectoryIterator. No ale skoro autor ma ten to chciałem by zrozumiał to co używa smile.gif
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.