V splošnem lahko rečemo, da obstajajo 4 načini, kako to implementirati v PHP:
- Extension uploadprogress
Zahteva PHP 5.2.x, deluje pa tudi na Windowsih (delujoča različica extensiona zanje je na voljo tukaj) - APC (Advanced PHP Cache) extension
S to metodo nimam dobrih izkušenj (sesuvanje Apacheja, nočem dodatnega cache engine-a, deluje samo na 5.2.x+) - PHP patch in extension
Zadeva je malce bolj “hekerska”, deluje pa tako na PHP 4.3+ kot tudi 5.x+ - Perl helper + PHP koda
Česar ne zmore PHP, zmore Perl… koda zna biti messy, prav tako ta metoda živcira večino sysopov…
Ker je itak že skoraj nujno preiti na PHP 5 in ker deluje najbolje, si bomo na kratko ogledali, kako se uporabi extension uploadprogress:
- .so / .dll extension skopiramo v mapo z extensioni in ga dodamo v php.ini
- Na dnu php.ini-ja dopišemo in po potrebi prilagodimo na imenik s pravicami za pisanje:
[uploadprogress] uploadprogress.file.filename_template="/tmp/upl_%s.txt"
- V PHP skripti pred prvim <input> poljem za nalaganje datotek dodamo nekaj takega:
<input type="hidden" name="UPLOAD_IDENTIFIER" value="<?php echo uniqid() ?>"/>
- V novem oknu / AJAX poizvedbi, kjer nas zanima stanje nalaganja, uporabimo funkcijo uploadprogress_get_info(), ki kot argument sprejme unikatno vrednost “upload identifierja” in vrne polje z različnimi podatki o trenutnem stanju nalaganja datotek
Takole reč zgleda v dev verziji shrani.si:
SFfreak | 01. 09. 2007 ob 22:40 | Permalink
Mogoče velja omeniti še varianto z lighttpd (na žalost šele z verzijo 1.5.0, ki pa bo baje kmalu stable): http://trac.lighttpd.net/trac/wiki/Docs%3AModUploadProgress
sverde1 | 01. 09. 2007 ob 22:43 | Permalink
Kul, vidim da progress bar napreduje :) sem pa jaz šele pred kratkim opazil, da zahteva ona izvedba (druga na zgornjem seznamu), ki sem ti jo jaz predlagal, APC extension, ker priznam, nisem našel časa da bi prej preizkusil zadevo.
Edino moti me malo tista sredinska poravnava datotek na sliki… ker tisti “iksi” niso v vrsti en pod drugim. Nekaj podobnega tudi znotraj v albumih/mapah, namreč jst osebno ko najprej postavim kurzor na ikonco in potem medtem ko berem imena datotek pomikam miško nižje brez da bi gledal kurzor :) nato pa nekje sredi strani ko najdem datoteko klikam v prazno, ker je gumb zamaknjen v levo oz. desno :D . Well you get the point :)
Jernej | 01. 09. 2007 ob 23:15 | Permalink
Super zadeva, najlepša hvala ;).
Marko | 02. 09. 2007 ob 11:06 | Permalink
sverde1: Shrani.si bo imel popolnoma nov design, tam bo to lepo poravnano ;-)
zaxy | 02. 09. 2007 ob 11:45 | Permalink
super tole! še več takih :-P tehničnih..
Miha | 20. 09. 2007 ob 23:09 | Permalink
Men pa stalno null returna… se komu kaj sanja?
Laufa pod Lighttpd in PHP-FCGI