![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam skrypt, ktory uploaduje plik na serwer, ladnie koduje url itd itd. Teraz, jest drugi skrypt, ktory na podstawie zapisanego w mysql kodu pokazuje plik do sciagniecia pliku. cos w stylu domena.pl/plik.php?kod=12345 szuka w bazie pliku o id 12345 I teraz mam problem - chce aby plik.php wyswietlil kilka danych o danym pliku (ktore sa juz zapisane w bazie) na stronie, ale jednoczesnie rozpaczal sciaganie pliku dla uzytkownika - gdy dodam w pliku Cytat header("Location adrespliku"); skrypt od razu zaczyna sciagac plik, zamiast rownoczesnie wyswietlac stronę. please help;) (IMG:http://forum.php.pl/style_emoticons/default/party.gif) |
|
|
-mkdes- |
![]()
Post
#2
|
Goście ![]() |
Oto jak można wymusić pobieranie pliku.
Stwórz plik np. download.php o poniższej treści i przekaż metodą GET do niego nazwę pliku i ścieżkę.
Linia ustawiająca typ MIME pliku.
Ten post edytował mkdes 27.05.2007, 21:04:38 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym, ze nie wiemy jakiego typu jest to plik, jakie ma rozszerzenie, tego skrypt "dowiaduje sie" dopiero podczas wywolywania.
a readfile zczytuje plik z dysku serwera i pieknie go wywala w przegladarce (krzaczki:) ) //edit: niby dziala, ale do tego doszedlem juz wczesniej - plik jest sciagany od razu, i tylko to, bez wyswietlenia zawartoci sckryptu (ktory robi jeszzce kilka rzeczy). Ten post edytował suchar 27.05.2007, 21:18:19 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Manual: mime_content_type" title="Zobacz w manualu PHP" target="_manual
Dobrze jest też wysłać nagłówek z wielkością pliku:
I najważniejsze na koniec: ZAWSZE filtruj dane wejsciowe. Kod podany przez mkdes pozwala na sciagniecie dowolnego pliku Twojego serwisu. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
no ok, powiedzmy ze doszedlem do tego ale nadal nie jest tak jak powinno:
Cytat (chwilo wylaczylem force'owanie sciagania) Przy wyslaniu prosby o plik ffcba3b5ebf3473f50b9cf4d20f26819/files24.png (sciezka http://domena.pl/ffcba3b5ebf3473f50b9cf4d2...819/files24.png, na dysku zapisany pod adresem /home/user/domena/ffcba3b5ebf3473f50b9cf4d20f26819/files24.png) przegladarka zamiast sciagac plik files24.png sciaga plik o nazwie ffcba3b5ebf3473f50b9cf4d20f26819/files24.png ktorego i tak nie mozna otworzyc w niczym. //edit: juz sciaga, ma poprawny rozmiar, ale przy otwieraniu (np. tego .png co podalem) ze nieznany format pliku. moja koncowka pliku download.php: Cytat function mime_content_type ( $f )
{ return trim ( exec ('file -bi ' . escapeshellarg ( $f ) ) ) ; } $naglowek = mime_content_type($global_path); $naglowek2 = $naglowek; $plik = $name[0]; header("Content-Length: ". filesize($global_path)); header("Content-Disposition: attachment; filename=$plik"); header('Content-type: '.$naglowek2); readfile($filespath . $get[0] . "/" . $plik); ob_end_flush(); Ten post edytował suchar 27.05.2007, 22:51:33 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
OK, to jak teraz zmucis przeg;adarke aby sciagala pliki graficzne i tekstowe?
mam taka strukturę katalogow: katalog_glowny (tu dalem .htaccess) | |-subfolder1/plik.png |-subfolder2/plik.txt |-subfolder3/jakisplik Zawartosc pliku .htaccess: Cytat AddType application/octet-stream image/png AddType application/octet-stream txt AddType application/octet-stream image/jpg AddType application/octet-stream image/gif AddType application/octet-stream html AddType application/octet-stream png AddType application/octet-stream jpg AddType application/octet-stream gif Niestety, wtedy server albo wywala internal server error, lub po prostu htacces nie dziala i plik sie wyswietla zamiast sciagac. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:36 |