[PHP] Stiahnutie súboru - presmerovanie

Programovacie jazyky, rady, poradňa...
L.E.n
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 289
Registrovaný: 22 mar 2010, 19:47
Bydlisko: Broken mind
Kontaktovať používateľa:

[PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa L.E.n »

Zdravím.
Chcel som do svojho filehost scriptu dať okamžité sťahovanie bez obmedzenia, potom ma však napadli možné dôsledky, tak by som si to chcel ošetriť. Jednoducho chcem spraviť aby po kliknutí na link daný uživateľ dostal presmerovanie na súbor (cez PHP pravdepodobne). Povedzme si príklad:

http://mojserver.sk/ijijowjfwf/subor.zip

Na ten súbor ho to presmeruje, ale s tým, že zložka ijijowjfwf bude NEPRÍSTUPNÁ užívateľom, len PHP.
Obávam sa že na to Header funkcia nestačí, ako potom na to? Vďaka za pomoc (ospravedlňujem sa ak to tu už bolo).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa audiotrack »

cez .htaccess môžeš zakázať directory listing, aby ľudia nevideli čo v tom adresári je. Stále si to ale môžu stiahnúť zadaním priamej url. Ak chceš zabrániť aj tomuto, bude to trochu (trochu dosť) zložitejšie
L.E.n
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 289
Registrovaný: 22 mar 2010, 19:47
Bydlisko: Broken mind
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa L.E.n »

audiotrack napísal:cez .htaccess môžeš zakázať directory listing, aby ľudia nevideli čo v tom adresári je. Stále si to ale môžu stiahnúť zadaním priamej url. Ak chceš zabrániť aj tomuto, bude to trochu (trochu dosť) zložitejšie
Cez .htaccess mám samozrejme deny for all, takže ani zadaním priamej URL si nepomôžu, ale PHP sa k tomu dostane, o to mi ide. Netreba mi presne vysvetľovať kód, len presmerovanie cez PHP ktoré toto zvládne (Header funguje asi tak ako keď to zadám priamo, takže to nie).
Ešte raz:
V .htaccess mám deny for all, čiže prístup nemá nikto, len PHP. O to mi ide - využiť PHP, chlapec klikne na link a ten ho presmeruje a rovno stiahne súbor, no bez kliknutia na link ho nemôže stiahnuť - o to mi ide.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

header("Content-type: $type");
header("Content-Disposition: attachment;filename=$file");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0');
set_time_limit(0);
readfile($file);
kde $file je tvoj súbor, $type je jeho typ
L.E.n
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 289
Registrovaný: 22 mar 2010, 19:47
Bydlisko: Broken mind
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa L.E.n »

Vďaka, ešte sa spýtam podľa príkladu či je použitie správne a teda či správne chápem:

Kód: Vybrať všetko

$type = "mpeg"; //teda že mpeg a rovnako tak funguje zip rar txt doc, etc..?
$file = "http://roflmao.net/kijqo984ndw7/subor.mpeg";

header("Content-type: $type");
header("Content-Disposition: attachment;filename=$file");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0');
set_time_limit(0);
readfile($file);
- eh, chápem to správne? :D
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa audiotrack »

typ bude v tvojom prípade audio/mpeg a cesta bude relatívna k danému súboru
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa Mmartin »

audiotrack napísal:typ bude v tvojom prípade audio/mpeg a cesta bude relatívna k danému súboru
a pre doplnenie...
pre jpeg, png, ico a ine obrazky je to napr image/jpeg, image/png, image/ico, atd. Pri textovych dokumentoch ako html, xml je to text/html, text/xml, atd
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: [PHP] Stiahnutie súboru - presmerovanie

Príspevok od používateľa __construct »

A ja pre doplnenie pridávam zoznam MIME typov :

Kód: Vybrať všetko

http://www.w3schools.com/media/media_mimeref.asp
Napísať odpoveď