Letöltő script másképpen
Sziasztok!
Csináltam egy fájl letöltő php scriptet.Nagyjából így néz ki.
Gépemen tesztelve tökéletesen megy, mert a set_time_limit() engedélyezett funkció. De ha ingyenes tárhelyről akarok letölteni egy fájlt, ami 30 másodpercen belül nem ér át, akkor annak a vége lemarad.
Az lenne a lényeg, hogy ha böngészővel rámegyek egy linkre, akkor a fájl mentése legyen elérhető. Nem tud-e valaki esetleg erre egy megoldást? Akár böngészőoldali javascripttel, vagy hasonló?
(Próbálgattam a mime/types -t módosítani, de ingyenes tárhelyen nem lehetett)
Előre is köszönöm.
■ Csináltam egy fájl letöltő php scriptet.
<?php
//Kezdeti értékek
$fajl = "egy_fajl.mp3";
//Headerek
header("Content-Type: application/octet-stream");
header("Last-Modified: ".date("D, j M Y G:i:s T", filemtime($fajl)));
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=\"".$fajlnev."\"");
header("Accept-Ranges: bytes");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: ".filesize($fajl));
header("Content-Transfer-Encoding: binary");
//Fájl beolvasása
$letoltes = fopen($fajl, "r");
if(!(!$letoltes)){
@set_time_limit(0); //Idő limit kikapcs
while(!feof($letoltes))
{
echo fread($letoltes, 1048576);
ob_flush(); //Buffer ürítése
}
fclose( $letoltes ); //Fájl bezárása
}
?>
Gépemen tesztelve tökéletesen megy, mert a set_time_limit() engedélyezett funkció. De ha ingyenes tárhelyről akarok letölteni egy fájlt, ami 30 másodpercen belül nem ér át, akkor annak a vége lemarad.
Az lenne a lényeg, hogy ha böngészővel rámegyek egy linkre, akkor a fájl mentése legyen elérhető. Nem tud-e valaki esetleg erre egy megoldást? Akár böngészőoldali javascripttel, vagy hasonló?
(Próbálgattam a mime/types -t módosítani, de ingyenes tárhelyen nem lehetett)
Előre is köszönöm.
Nem tudsz mit csinálni
Egyébként az ob_flush milyen célt szeretne szolgálni ha még el sem indítottad az output bufferinget? Neked nem inkább a flush() kéne?
őőő
Nem ismer valaki valami javascriptet, vagy akármit, amivel pl "http:/weblap.hu/fajl.mp3" -hoz röktön mentést ajánl fel?
JS?
asd
De mostmár tudom, hogy ez ingyenes tárhelyre nem megoldható. Köszönöm a válaszokat.
Ingyenes tárhely
readfile
nem jó
max_execution....
Egy forum stb script is lefut tizedmásodpercek alatt,független attol hogy modemmel esetleg fél perc alatt töltödik le az oldal..
Márpedig a php néhány másodperc alatt kimenetre küldi az adott xx megás fájlt,és ezzel véget is ér a futása,a többi a szerver-kliens közt zajlik...
Legrosszabb esetben pufferelni kell,amivel ugyanugy egyszerre megy ki,mint a readfile esetén...
Persze itt meg a memory_limit lehet akadály...
Puffer
Mint irtam...
De ez mindegy is,itt most arrol beszélek hogy miért is függ a script futási ideje(set_time_limit()),a letöltési sebességtöl?
letöltési sebesség nem függ