Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Download dokumentów, Łatwy skrypt
-KadrO-
post
Post #1





Goście







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ę.
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Manual

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

Ten post edytował melkorm 12.06.2011, 16:54:13
Go to the top of the page
+Quote Post
-kadrO-
post
Post #3





Goście







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. (IMG:style_emoticons/default/sad.gif) A to raczej jak poradnik.
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Jeżeli szukasz gotowca to nie ten dział (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
KadrO
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.06.2011

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


  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.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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.
Go to the top of the page
+Quote Post
KadrO
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.06.2011

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



  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 (IMG:style_emoticons/default/sad.gif)
Czemu z głównego katalogu wyświetla, a gdy zamiast '.' wpiszę jakiś folder np. dok nie ma nic?

Ten post edytował KadrO 13.06.2011, 17:44:45
Go to the top of the page
+Quote Post
Daiquiri
post
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




A próbowałeś wykorzystać w praktyce to, co napisał nospor? Opcjonalnie pomoce z manuala, np. przykład #1.
Go to the top of the page
+Quote Post
KadrO
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.06.2011

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


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...
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
KadrO
post
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.06.2011

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No musisz do $plik dodać sciezke

$plik = 'kat/'.$plik;
i juz.
Go to the top of the page
+Quote Post
vokiel
post
Post #13





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował vokiel 14.06.2011, 15:03:03
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jest jeszcze masa innych sposobów nie tylko DirectoryIterator. No ale skoro autor ma ten to chciałem by zrozumiał to co używa (IMG:style_emoticons/default/smile.gif)
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 - 15:13