No0ne Posted September 30, 2011 Report Share 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 Link to comment Share on other sites More sharing options...
codez Posted October 1, 2011 Report Share 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 Link to comment Share on other sites More sharing options...
No0ne Posted October 1, 2011 Author Report Share 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 Link to comment Share on other sites More sharing options...
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.