Autor | Zpráva | ||
---|---|---|---|
Silver8000 Profil |
#1 · Zasláno: 22. 1. 2014, 09:54:36
Ahoj vsem
Mam takovou otazu ktera se tyka cteni velkeho mp4 souboru pro streamovani flash prehravace. Jake je zpravne cteni techto souboru? Mam zatim toto coz funguje ale nejsem si jist zda je to zrovna idealni.: <?php set_time_limit(0); if (@$_GET['video_number']==true AND $user_logged_in==true){ $WebFileDownloadSpeed = 1*(1024*1024); $WebFile = 'WebVideoFolder/test'.$_GET['video_number'].'.mp4'; $WebFileOpen = fopen($WebFile,'rb'); if ($WebFileOpen==true){ header("Content-length:".filesize($WebFile)); header('Content-type: '.mime_content_type($WebFile)); while (!feof($WebFileOpen)){ $buffer = fread($WebFileOpen, $WebFileDownloadSpeed); echo $buffer; ob_flush(); flush(); } fclose($WebFileOpen); }else{ die('Can not open file!'); } }else{ die("Access denied"); } ?> Diky vsem |
||
Jan Tvrdík Profil |
#2 · Zasláno: 22. 1. 2014, 11:33:17
Silver8000:
Použij normální readfile. |
||
Silver8000 Profil |
#3 · Zasláno: 22. 1. 2014, 13:31:50
Jan Tvrdík:
no ale readfile mi jede jen z casti ... necte cely soubor.
|
||
Jan Tvrdík Profil |
Silver8000:
Nevěřím, readfile vypíše celý soubor a navíc se napočítá do časového limitu, takže není potřeba ani volat set_time_limit. Taky efektivněji pracuje s paměti.
|
||
Silver8000 Profil |
no jo ale ja do pameti pokud mozno chci nacist pouze male casti a ne cely soubor kvuly omezeni pameti.
Priklad : Celkova pamet 4GB Povolena pamet v php 128mb Uzivatel1 nacita 500mb soubor Uzivatel2 nacita 700mb soubor Uzivatel3 nacita 1200mb soubor k tomu nepocitam beh systemu plus zatez serveru a u readfile pri vice zadosti na soubory se nebude nacitat zpravne http://stackoverflow.com/questions/6627952/why-does-readfile-exhaust-php-memory tim narazim i na dalsi potrebnou otazku napriklad kdyz me nebo uzivateli spadne flash prehravac tak budu muset obnovit stranku a nechci se koukat a ani cekat na to az se me nacte cely soubor ale jen kliknu v prehravaci do bodu nez flash prehravac spadl. |
||
Jan Tvrdík Profil |
#6 · Zasláno: 22. 1. 2014, 16:46:23
Silver8000:
„a u readfile pri vice zadosti na soubory se nebude nacitat zpravne“ Mám na to jiný názor. „nechci se koukat a ani cekat na to az se me nacte cely soubor“ Což, ale neřešil ani tvůj původní skript. |
||
Silver8000 Profil |
#7 · Zasláno: 22. 1. 2014, 21:49:40
Tak jak to mam teda vyresit?
|
||
Časová prodleva: 8 dní
|
|||
Silver8000 Profil |
Tak uz jsem to vyresil stahnutim apache modulu X-Sendfile a zamenou informaci v header.
Prikladny nazor : <?php set_time_limit(0); if (@$_GET['video_number']==true AND $user_logged_in==true){ $WebFile = 'WebVideoFolder/test'.$_GET['video_number'].'.mp4'; if (is_readable($WebFile)==true){ header('X-Sendfile: ' . $WebFile); header("Content-length:".filesize($WebFile)); header('Content-type: '.mime_content_type($WebFile)); exit; }else{ die('Can not open file!'); } }else{ die("Access denied"); } ?> Muzu rict ze to jede perfektne. Pred tim jsem se to snazil povolit ale apache se nechtel rozjet protoze to bylo urcene pro jinou verzi , tak si davejte velky pozor vy kteri budete resit stejny nebo podobny problem. |
||
Časová prodleva: 11 let
|
0