ďťż
Podstrony
|
telcocafeMam problem z jednym hostingiem (przypuśćmy test.pl). uploaduje na ten serwer plik (np film.rar) aby umożliwić innym jego ściąganie. Rozumując logicznie, po wpisaniu w przeglądarce www.test.pl/film.rar powinniśmy zacząć ściąganie powyższego pliku. Niestety przeglądarka zamiast ściągać, próbuje go otworzyć, tak jak by był on plikiem tekstowym. Czy można za pomocą jakiegoś znacznika/funkcji wymusić na przeglądarce ściąganie tego pliku?Przykład z życia wzięty: http://www.azereus.p...00974622938.rap u mnie się ściąga normalnie, ale możliwe, że nieobsługiwany przez apache typ pliku i próbuje go na "żywca" otworzyć. Inną możliwością jest, że przegladarka sama otwiera pliki "rar" nie jest najlepszym formatem archiwum ;) Stosuj Zipy :) Wymuszenie pobrania jest możliwe np. z poziomu PHP - wystarczy wysłać odpowiednie nagłówki przed wysłaniem zawartości pliku (choć powinno się poprawić konfigurację serwera ;)) http://www.phpit.net...force-download/ *.rar podałem tylko jako przykład :) konfiguracji serwera nie poprawię bo jest to hosting, próbowałem wymusić zmianę konfiguracji poprzez plik .htaccess, ale coś mi nie wychodziło. Na trzech różnych kompach podany powyżej link nie chciał mi się ściągać, więc tutaj się już zmieszałem. Sprawdzam właśnie link który zapodałeś. Żeby dobrze zobrazować problem. Co powinienem zrobić aby użytkownik po kliknięciu na http://www.podrurzni...ublika.pl/p.cfg ściągał ten plik, a nie otwierał go z poziomu przeglądarki. Ewentualnie jaki kod php napisać aby rozpoczęło się ściąganie tego pliku. Riklaunim podał Ci odpowiednią funkcję do php. W wypadku pliku p.cfg wystarczy, że odpalisz skrypt o następującej formie: <?php function force_download ($data, $name, $mimetype='', $filesize=false) { // File size not set? if ($filesize == false OR !is_numeric($filesize)) { $filesize = strlen($data); } // Mimetype not set? if (empty($mimetype)) { $mimetype = 'application/octet-stream'; } // Make sure there's not anything else left ob_clean_all(); // Start sending headers header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); // required for certain browsers header("Content-Transfer-Encoding: binary"); header("Content-Type: " . $mimetype); header("Content-Length: " . $filesize); header("Content-Disposition: attachment; filename=\"" . $name . "\";" ); // Send data echo $data; die(); } function ob_clean_all () { $ob_active = ob_get_length () !== false; while($ob_active) { ob_end_clean(); $ob_active = ob_get_length () !== false; } return true; } force_download(file_get_contents('p.cfg'), 'p.cfg'); ?> Użytkownik marrek13 edytował ten post 14 lipiec 2008, 13:11 |
|||
Sitedesign by AltusUmbrae. |