Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][inne][PHP]Pobieranie plików
Poczatkujacyyo
post 5.05.2013, 00:05:39
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.10.2012

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


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
Go to the top of the page
+Quote Post
Aqu
post 5.05.2013, 00:55:14
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Np.
  1. AddType application/octet-stream .txt
  2. #itd.
Go to the top of the page
+Quote Post
Neeew
post 5.05.2013, 05:13:00
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.04.2013
Skąd: localhost

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


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.

Ten post edytował Neeew 5.05.2013, 05:13:58


--------------------
możesz coś przeczytać jeden raz dokładnie lub przerabiać pare razy.
Go to the top of the page
+Quote Post
Poczatkujacyyo
post 5.05.2013, 09:02:00
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.10.2012

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


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ć.
Go to the top of the page
+Quote Post
kayman
post 5.05.2013, 09:25:58
Post #5





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


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ć

Ten post edytował kayman 5.05.2013, 09:27:01
Go to the top of the page
+Quote Post
Poczatkujacyyo
post 5.05.2013, 09:37:09
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.10.2012

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


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.
Go to the top of the page
+Quote Post
kayman
post 5.05.2013, 09:40:44
Post #7





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


  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
Go to the top of the page
+Quote Post
Aqu
post 5.05.2013, 09:43:50
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


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

Ten post edytował Aqu 5.05.2013, 09:53:28
Go to the top of the page
+Quote Post
kayman
post 5.05.2013, 09:48:47
Post #9





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


no tak nie doczytałem dokładnie smile.gif

e:/ to moje jest źle do pytania autora

Ten post edytował kayman 5.05.2013, 09:51:29
Go to the top of the page
+Quote Post
Poczatkujacyyo
post 5.05.2013, 10:08:19
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.10.2012

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


Cytat
Options +Indexes

To mam w .htaccess, który zresztą mam w folderze, w któym będę wrzucał pliki do pobrania.

Ten post edytował Poczatkujacyyo 5.05.2013, 10:08:50
Go to the top of the page
+Quote Post
Aqu
post 5.05.2013, 11:00:39
Post #11





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


  1. Options +Indexes
  2. AddType application/octet-stream .txt


U mnie działa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 00:07