No0ne Posted September 30, 2011 Report Posted September 30, 2011 Tātad interesē noteikt augšuplādes ātrumu konkrētajā brīdī serverim, uz kura glabājas faili. Nu, pieņemsim, pārbaudīt vai no servera fails nāk ar vismaz 100kb/s. Un lai nebūtu jāvelk visu lielo failu, gribētos nolimitēt curl uz 50mb, lai pēc tam pārtrauc lejuplādēt. Mēģināju šādi: $writefn = function($ch, $chunk) { static $data=''; static $limit = 500; //500 baiti $len = strlen($data) + strlen($chunk); if ($len >= $limit ) { $data .= substr($chunk, 0, $limit-strlen($data)); echo strlen($data) , ' ', $data; return -1; } $data .= $chunk; return strlen($chunk); }; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $curl_url); //faila url curl_setopt($ch, CURLOPT_RANGE, '0-500'); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_WRITEFUNCTION, $writefn); $result = curl_exec($ch); curl_close($ch); fwrite($fp, $data); fclose($fp); $bytes = 10253413 / 1048576; // 6576848=filesize || 1048576=how many bytes in a mb $time_end = microtime(true); $time = $time_end - $time_start; $mbps = $time / $bytes; echo 'MBps: '.$mbps; clearstatcache(); nu un pirmkārt jau tur kaut kāda mistika notiek ar baitiem. kad uzlieku 5 baitus, tad attēlo 1 ciparu, ok pieņemsim, ka tie 4 ir kaut kam domāti, kurus neparāda, ttas it kā mani neuztrauc, bet, starp 5-500 baitiem viss ir ok, bet, ja es teiksim uzliek 505 baitus, tad man vispār nekas nenotiek. Tā varētu būt servera vaina? Un, ja jā, tad kas pie tā vainīgs. Ja nē, tad gribētu dzirdēt kā šo realizēt! Tātad lejuplādējam failu, pārtraucam tā lejuplādēšanu pie 50mb un skatamies/rēķinam ar cik tas ir vilcies. Quote
codez Posted October 1, 2011 Report Posted October 1, 2011 CURLOPT_RANG iestāda headeri, tātad to ir jāatbalsta serverim. Savukārt otrs ierobežojums tev ir $writefn funkcijā un tur tu ierobežo skatot izmēru nolasītajiem datiem - tas ir uzlikts 500. Quote
No0ne Posted October 1, 2011 Author Report Posted October 1, 2011 CURLOPT_RANG iestāda headeri, tātad to ir jāatbalsta serverim. Savukārt otrs ierobežojums tev ir $writefn funkcijā un tur tu ierobežo skatot izmēru nolasītajiem datiem - tas ir uzlikts 500. Es zinu, kas tur ir, bet tas galīgi nedarbojas kā vajag. Star citu tas CURLOT_RANG ir tizlākais headeris ever, 3 lapaas meginaju, visas 3 ignoreja so jaukumu. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.