Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie pliku z folderu spoza "public_html" ?
Forum PHP.pl > Forum > Przedszkole
mlody69
Witam,
mam takie pytanie odnośnie ściągania pliku a mianowicie:
mam takie katalogi:
/home/plik.rar
/var/www/skrypt.php
I moje pytanie brzmi, czy jest możliwość aby za pomocą skrypt.php użytkownik mógł ściągnąć plik z /home/ ?
erix
No jak mu puścisz np. przez readfile, to no problem.

Ale bardziej eleganckim wyjściem jest utworzenie dowiązania symbolicznego.
mlody69
Dzięki za podpowiedź. Próbowałem użyć readfile na początek i wyskrobałem taki mini kod:
  1. <?php
  2. $gdzie = '/home/backups/';
  3. $folder = dir($gdzie);
  4. echo "<pre>";
  5. while($plik = $folder->read())
  6. {
  7. if($plik != '.' && $plik != '..')
  8. echo '<a href="' .readfile($gdzie.$plik). '">' .$plik. '</a>';
  9. }
  10. $folder->close();
  11. ?>

Niestety to wywala baardzo dziwne ciągi typu:
Kod
]ŒHŇ+mťŕ^Ĺ&â űŁ‹ŸŮՎČLë9Ň(ĐťĄštŰäEŢ5’N›Sţ
äe5Ś]4j)˜’ěCe7Šěg´w`iópčkÓËÍc×óc•Ł—”yϏŒ•“ăôś[ş˙ś…˘NG[łrrf‘ŚĄN$˝ÎŰ@SÍËđ„(ĆëâZ'>đJ§_Ö8|O˘ÚTÖř5OőČgŃŕgĹI=7ú=6Űkžtœw
ő/]p4"SĐy%œ'!O{áQP


erix
tego masz nie umieszczać w hrefie!

readfile wypluwa od razu zawartośći ona ma być jedyna. Zobacz w manualu.
mlody69
W takim razie nie mam pomysłu jak to wykorzystać zwłaszcza gdy mam więcje plików i chce aby po kliknięciu w każdy rozpoczynało ściąganie.
erix
Musisz zrobić osobny skrypt, który to wypluwa. header - tam masz przykład.
mlody69
Zrobiłem coś ale już sie sam pogubiłem..
Nie wiem jak zrobić aby można było pobierać każdy plik z tej tablicy.
Kod:
  1. <?php
  2. $gdzie = '/home/lockerz/backups/';
  3. $folder = dir($gdzie);
  4. echo "<pre>";
  5. while($plik = $folder->read())
  6. {
  7. if($plik != '.' && $plik != '..')
  8. //echo '<a href="' .$plik. '">' .$plik. '</a>';
  9. //echo $plik."<br />";
  10. $pliki[] = $plik;
  11.  
  12. }
  13. $folder->close();
  14.  
  15.  
  16. $mm_type="application/zip";
  17. print_r($pliki);
  18. $filename = $pliki;
  19. $dostepne = $pliki;
  20. $myFile = $pliki;
  21. echo $plik;
  22. if($_GET['get'] == $filename)
  23. {
  24.  
  25. if(in_array($filename, $dostepne))
  26. {
  27. header("Cache-Control: public, must-revalidate");
  28. header("Pragma: hack");
  29. header("Content-Type: " . $mm_type);
  30. header("Content-Length: " .(string)(filesize($myFile)) );
  31. header('Content-Disposition: attachment; filename="'.$filename.'"');
  32. header("Content-Transfer-Encoding: binary\n");
  33. readfile($myFile);
  34. }
  35.  
  36. }
  37. ?>


Jakaś propozycja?Przy okazji odświeżam..

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