Autor | Zpráva | ||
---|---|---|---|
visionic Profil * |
Dobrý den,
projel jsem snad dost návodů a našel jsem i dost hotových řešení, které jsou od samého začátku až dokonce. Mě jde pouze o ten progress bar, který se mi nedařil vytáhnout z již hotových řešení. Mám php kompletní script na upload a ten se mi moc měnit nechce, jsem na něj zvyklý a mám v něm spoustu funkcí. Chtěl bych tedy udělat jen vylepšení o progress bar. Týká se to single uploadu obrázků a chci k němu navíc zobrazit průběh. Pokud to tak je, tak bych poteboval asi jen JS, které mi do nějaké proměnné bude házet procento statusu, které poté převedu do elementu. Klidně si nechám poradit, ale moc se mi nechce překopávat kvůli progresu celé mé řešení. Děkuji všem za jakoukoliv pomoc. Stránky jsou HTML5 a je možné zakomponovat i element progress. |
||
visionic Profil * |
#2 · Zasláno: 30. 5. 2016, 16:26:06
Našel jsem částečné řešení, už vidím procentuální upload, ale po uploadu se neodešle formulář, nebo odešle, ale jako formou ajax na script a to nechci.
$(function() { var bar = $('.bar'); var percent = $('.percent'); var status = $('#status'); $('form').ajaxForm({ beforeSend: function() { var percentVal = '0%'; bar.width(percentVal); percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + '%'; bar.width(percentVal); percent.html(percentVal); }, complete: function() { } }); }); if ($_POST[add]==".....") { ........ } <form action="" method="post" enctype="multipart/form-data"> <img style="display: none" id="obrazek"> <input class="files" type="File" name="obrázek" onchange="zobrazit(this)" accept="image/*"> <input class="button" name="add" type="submit" value="Odeslat"> </form> Chci to jen prostě odeslat se zachováním toho statusu. Nechci uploadovat ajaxem a nechci pouzit script externe. Je to vubec mozne? |
||
Keeehi Profil |
#3 · Zasláno: 30. 5. 2016, 16:56:52
visionic:
„nebo odešle, ale jako formou ajax na script a to nechci“ Jinou možnost moc nemáš. Jedině secure.php.net/manual/en/session.upload-progress.php |
||
visionic Profil * |
#4 · Zasláno: 30. 5. 2016, 18:53:44
Zkoušel jsem to, ale nějak mi to nefunguje. Server mi běží na 5.6 . Takže to sám nechápu. Zkoušel jsem dva návody a ani jeden mi nešel.
|
||
Keeehi Profil |
#5 · Zasláno: 30. 5. 2016, 19:33:08
Ono totiž záleží i na konfiguraci serveru. Přečti si warning a komentáře.
|
||
visionic Profil * |
#6 · Zasláno: 30. 5. 2016, 19:45:31
Vše se zdá být v pořádku. Ještě pak mrknu na to konfiguraci, nevíš přibližně co by tam mohlo zlobit v tom nastavení?
1. návod: codeseekah.com/2012/03/09/file-upload-progress-in-php-5-4 2. návod: oliversmith.io/technology/2011/12/04/php-5-4-file-upload-progress-and.html5-progress-bars 3. návod: www.sitepoint.com/tracking-upload-progress-with-php-and-javascript |
||
Davex Profil |
#7 · Zasláno: 31. 5. 2016, 00:18:54
visionic:
„Vše se zdá být v pořádku.“ První dva návody v pořádku nejsou, protože tam jsou různé chyby v JavaScriptu. Podle toho třetího návodu by to mohlo za vhodných okolností fungovat, i když ten kód také není ideální. |
||
visionic Profil * |
#8 · Zasláno: 1. 6. 2016, 10:17:14
A nemáš nějakou lepší radu? Variantu?
|
||
visionic Profil * |
#9 · Zasláno: 1. 6. 2016, 23:11:29
Tak nakonec jsem to vyřešil dle návodu č. 3. V názvu souboru jsem měl chybu a strašně se za to stydím :(.
Davex: Teď už je to hodně do detailu, jsem s tím velice spokojený, jen bych to nahrávání chtěl plynulejší. Nyní se procenta aktualizujou cca po 1s, ale chtěl bych třeba 0.05s. Ale to už bych chtěl asi moc že? |
||
Keeehi Profil |
#10 · Zasláno: 1. 6. 2016, 23:37:55
visionic:
To je tím, co je nastavené v setTimeout. V návodu je nastavená vteřina (1000 milisekund). Jde to samozřejmě zkrátit třeba i na těch požadovaných 50 milisekund, jen si uvědom, že se pokaždé pošle nový požadavek na server. A už i posílání požadavku každou sekundu je slušná zátěž. |
||
Davex Profil |
Keeehi:
„Jde to samozřejmě zkrátit“ Máš pravdu, ale údaj na serveru se aktualizuje jen jednou za vteřinu, takže se bude zbytečně často číst stejná hodnota. |
||
Amunak Profil |
#12 · Zasláno: 2. 6. 2016, 00:58:17
Pokud to má být plynulé, řešil bych to pomocí nějakých animací/přechodů/interpolace hodnoty, rozhodně ne větším počtem "snímků", zbytečně by to posílalo požadavky kvůli něčemu co má minimální hodnotu pro uživatele.
|
||
Časová prodleva: 1 měsíc
|
|||
visionic Profil * |
#13 · Zasláno: 12. 7. 2016, 17:24:40
Dobrý den,
abych zbytečně neotvíral další vlákno, tak to napíšu sem. Narazil jsem na problém s php progress barem. Pokud uploaduju první soubor (při prvním spuštění prohlížeče), tak mi to hodi automaticky rovnou 100%, druhy soubor uz funguje jak ma. Napadlo me, že chyba bude v samotnem sessions, ze neni definovana a prvni upload ji setne a tim padem druhej soubor uz bere správně. Napadá někoho nějaké řešení? |
||
Časová prodleva: 9 let
|
0