Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][inne][PHP]Pobieranie plików
Forum PHP.pl > Forum > Przedszkole
Poczatkujacyyo
Witam, mam vps'a i chciabym na nim mieć taką liste plików w jednym folderze: http://files.sa-mp.com/ (wiem jak już to zrobić za pomocą .htaccess) ale chciałbym też zrobić, że jak kliknę na dany plik zacznie mi go pobierać - a tak się dzieje tylko z plikami np. .exe, a pliki np .txt są otwierane przez przeglądarkę i nie da się ich pobrać. Proszę mi pomóc co miałbym zrobić, żeby możan było to pobierać smile.gif
Aqu
Np.
  1. AddType application/octet-stream .txt
  2. #itd.
Neeew
spróbój:

  1. <a href="NazwaPliku.rozszerzenie" target="_blank">Pobierz</a>


w ten sposob odwiedzajacy po kliknieciu moze pobrac "NazwaPliku.rozszerzenie" jakby taki plik wgl istnial... , jesli podajesz bezposrednio nazwe pliku bez np /folder/innyfolder/plik to plik musi sie znajdywac w glownym katalogu.
Poczatkujacyyo
Cytat(Aqu @ 5.05.2013, 01:55:14 ) *
Np.
  1. AddType application/octet-stream .txt
  2. #itd.

To mi nie działa niestety.

@UP:
Dobrze, a jak plików jest dużo i niechciałbym wpisywać wszystkich nazw pliku?( <a href="NazwaPliku.rozszerzenie" target="_blank">Pobierz</a>) - musiałbym z 30 lini takich, a jak pliki się zmienią(bo będą zmieniane co jakiś czas) to znó musiałbym to zmieniać.
kayman
http://www.php.net/manual/pt_BR/function.header.php#102175

takie stare ale działa

robisz plik np download.php

po tej funkcji piszesz wywołanie tej funkcji

  1.  
  2. if (isset($_GET['file']))
  3. downloadFile('folder_z_plikami/' . $_GET['file']);
  4.  


wywołujesz z url <a href="download.php?file=jakisplik.jpg" target="_blank">Pobierz</a>

trzeba dopisać typy MIME których będziesz używać
Poczatkujacyyo
Może to głupie ale możesz wrzucić mi już gotowy plik, który wgram na ftp i powiedzieć gdzie mam co dopisać? Nie znam się na php więc nie wiem o co chodzi niestety.
kayman
  1. <?php
  2. function downloadFile( $fullPath ){
  3.  
  4. // Must be fresh start
  5. if( headers_sent() )
  6. die('Headers Sent');
  7.  
  8. // Required for some browsers
  9. if(ini_get('zlib.output_compression'))
  10. ini_set('zlib.output_compression', 'Off');
  11.  
  12. // File Exists?
  13. if( file_exists($fullPath) ){
  14.  
  15. // Parse Info / Get Extension
  16. $fsize = filesize($fullPath);
  17. $path_parts = pathinfo($fullPath);
  18. $ext = strtolower($path_parts["extension"]);
  19.  
  20. // Determine Content Type
  21. switch ($ext) {
  22. case "pdf": $ctype="application/pdf"; break;
  23. case "exe": $ctype="application/octet-stream"; break;
  24. case "zip": $ctype="application/zip"; break;
  25. case "doc": $ctype="application/msword"; break;
  26. case "xls": $ctype="application/vnd.ms-excel"; break;
  27. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  28. case "gif": $ctype="image/gif"; break;
  29. case "png": $ctype="image/png"; break;
  30. case "jpeg":
  31. case "jpg": $ctype="image/jpg"; break;
  32. default: $ctype="application/force-download";
  33. }
  34.  
  35. header("Pragma: public"); // required
  36. header("Expires: 0");
  37. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  38. header("Cache-Control: private",false); // required for certain browsers
  39. header("Content-Type: $ctype");
  40. header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
  41. header("Content-Transfer-Encoding: binary");
  42. header("Content-Length: ".$fsize);
  43. flush();
  44. readfile( $fullPath );
  45.  
  46. } else
  47. die('File Not Found');
  48.  
  49. }
  50.  
  51. if (isset($_GET['file']))
  52. downloadFile('folder_z_plikami/' . $_GET['file']); // za folder_z_plikami wstawic prawidłową ściężkę do pliku
  53.  
  54. ?>


to cały plik smile.gif tworzysz w notatniku i save as -> download.php
Aqu
Tylko z tego co rozumiem, to autor tematu ma taką listę plików: http://files.sa-mp.com/ więc jak ma pobierać pliki z tego przez php? Poczatkujacyyo - pokaż plik .htaccess

Edit: nicki mi się poomyliły. ;p
kayman
no tak nie doczytałem dokładnie smile.gif

e:/ to moje jest źle do pytania autora
Poczatkujacyyo
Cytat
Options +Indexes

To mam w .htaccess, który zresztą mam w folderze, w któym będę wrzucał pliki do pobrania.
Aqu
  1. Options +Indexes
  2. AddType application/octet-stream .txt


U mnie działa.
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.