Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> download
acid_100
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.09.2003

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


Witam!

W jaki sposob mozna zreazlizowac download plikow. Mam pliki, kotrych do ktorych mam linki na stroni i chcialbym aby po wybraniu pliku otworzylo sie okno z zapytaniem gdzie zapisac ten plik. Chce pozbyc sie otwierania automatycznego plikow w oknie przegladarki jak to jest np z doc czy pdf
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
zalew
post
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

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


daj te na glowki
[php:1:cc102e0f92]<?php
header("Cache-control: private");
header("Content-Type: ".$typ_twojegopliku);
header("Content-Length: ".filesize($twojplik));
header("Content-Disposition: attachment; filename=".$twojplik);
?>[/php:1:cc102e0f92]
a po nich wrzuc zawartosc twojego pliku... fopen() itd...
Go to the top of the page
+Quote Post
matid
post
Post #3





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Albo takie nagłówki:
[php:1:bf3e7ff560]
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename=' . $nazwa_pliku);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . strlen($zawartosc_pliku));
echo $zawartosc_pliku;
[/php:1:bf3e7ff560]
Go to the top of the page
+Quote Post
Cudi
post
Post #4


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Hmmm... niestety takie nagłowki są nieskuteczne przy dużych plikach, bo wczytywanie zawartości z nich zajmuje php wieki. Natamiast odesłanie do pliku przez header( 'location: nazwa_pliku' ); kończy sie w mozilli otwieraniem strony z zawartością pliku, niezależnie od rozszerzenia :/
Jak zmusić Mozille by pobierała pliki z adresu na który ją przekierunkujemy, a nie próbowała otwierać strony z zawartością?
-----------------
Co mnie bardzo zdziwiło, w IE 6.0 pojawia sie normalny monit pobierania.
Go to the top of the page
+Quote Post
matid
post
Post #5





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


To zależy jaki rodzaj pliku, bo tylko niektóre się tak zachowują. Niestety od strony serwera nie można nic na to zaradzić. Jedynym wyjściem jest chyba użycie sposobu który Ci podałem.
Go to the top of the page
+Quote Post
[fisher]
post
Post #6





Grupa: Zarejestrowani
Postów: 151
Pomógł: 0
Dołączył: 4.03.2003

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


Cytat
Albo takie nagłówki:
[php:1:100f869b54]
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename=' . $nazwa_pliku);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . strlen($zawartosc_pliku));
echo $zawartosc_pliku;
[/php:1:100f869b54]


nie do konca tak, gdyz czesto pliki sa z binarna zawartoscia, wiec zamiast strlen() uzylbym filesize() i zamiast echo $zawartosc_pliku uzylbym funkcji readfile()
a poza tym wypadaloby jeszcze wyslac Content-type wysylanego pliku

Cytat
Hmmm... niestety takie nagłowki są nieskuteczne przy dużych plikach, bo wczytywanie zawartości z nich zajmuje php wieki.

Czasami tak sie nie da (pobieranie zalacznikow poczty elektronicznej) gdy nie ma regularnych plikow
Cytat
Co mnie bardzo zdziwiło, w IE 6.0 pojawia sie normalny monit pobierania.

IE to nie jest przegladarka (a narzedzie do wykonywania windowsupdate) - wiec nie dziwi mnie kazda jej odkryta ulomnosc
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.09.2025 - 09:19