Zobrazení průběhu uploadu
Školení, která pořádám 
Při nahrávání velkých souborů na server pomocí formuláře by bylo šikovné uživateli zobrazovat průběh stahování dat. PHP tuto funkci bohužel nepodporuje, přestože patch existuje už dlouhou dobu a přestože je dokonce zařazen do oficiálního adresáře patchů. Pohled do týdenních sumářů vývojářské konference je poměrně smutný – přestože možné nevýhody byly vyvráceny, do oficiální distribuce se kód nakonec nedostal – do PHP 4.3 se to už nestihlo, v PHP 5.0 se na to zapomnělo a v PHP 5.1 se k tomu nikdo nedostal. Slibné rozšíření postparser zůstalo ve fázi návrhu bez jediné vydané verze.
Konec vzdychání, po aplikaci patche a povolení přibaleného rozšíření upload_progress_meter lze průběh stahování zobrazovat např. tímto kódem:
<?php
$progress = upload_progress_meter_get_info($_GET["idf"]);
if ($progress["bytes_uploaded"] < $progress["bytes_total"]) {
echo '<meta http-equiv="Refresh" content="1; url=' . htmlspecialchars("$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]") . '" />';
}
echo "Staženo: $progress[bytes_uploaded] / $progress[bytes_total] B\n";
?>
Diskuse
Lukoko:
Ve spojení s AJAXem by to mohlo vypadat opravdu dobre. Skoda, ze se na to musi patchovat PHP.
mito:
Mate pravdu nakolko preloadovanie stranky moze byt v mnohych pripadoch neziaduje.
ATom:
Nejde to řešit jinak, čistě na straně JS?
Nedavno po me bylo pozadovano neco podobnyho, patchovat PHP se mi nezdalo jako dobrej napad, tak jsem vyuzil
http://www.raditha.com/php/progress.php tedy kombinaci PHP s Perlem (ten jsem prohnal pres CGI).
Tom:
Pokud někoho zaujme toto:
http://pdoru.from.ro/upload-progress-meter/a chtěl by to provozovat na PHP vyšší než 5.0.3 tak narazí na problém. Původní patch jsem si však opravil a bězí mě i na verzi PHP 5.2.4. S úspěchem to provozuji na několika serverech.
Upravený patch můžu zaslat.
Darosh:
Můžeš mi prosím poslat upravený zdrojáky na partyk@quick.cz
Díky
kodik:
Ahoj mohl bys mi to poslat ? prosiiim
Prosim si opravene zdrojaky... je to mozne prevadzkovat aj nvo windowse?
dakujem
Stefan, servis@detva.biz
Dobrý den,
nevíte někdo jak patchovat PHP na Windows?
Díííky ;)