Zadejte hledaný výraz...

Problém s uploadem souborů přes JS

David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 14:58:37
Ahoj,
lámu si hlavu s jedním upload skriptem na upravovaném webu. Nefungoval správně, tak jsem si tam dal nějaké výpisy do konsole apod. Nyní mi vrtá hlavou, proč když se nahraje pomocí input několik obrázků, tak v cyklu for s "j" (označil jsem jako "podivné místo") se mi vypíše při každém průchodu vždy jen vlastnost posledního nahrávaného obrázku.
Přitom řádek s výpisem this je v pořádku, protože to vypíše vždy jinou URL k souboru. Ovšem v čítači "j" už je chyba a stejně tak informace o rozměru patří vždy jen poslednímu obrázku.
Chtěl bych to vyřešit úpravou tohoto, než přepisovat upload souborů do jiné technologie.
Děkuji moc za každou radu. Zkrátka cyklus s "j" je vždy asi o dost rychlejší než událost .addEventListener a ta pak načítá jen poslední obrázek, nevím...
16. 9. 2019 14:58:37
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415852
ne
verified
rating uzivatele
(22 hodnocení)
16. 9. 2019 15:23:44
a ked v tom cykle zmenis "this" za "tempImages" sa co stane?
16. 9. 2019 15:23:44
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415851
David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 15:30:28
To je porad stejny proces. Uz jsem tam mel obe varianty.
16. 9. 2019 15:30:28
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415850
ne
verified
rating uzivatele
(22 hodnocení)
16. 9. 2019 15:33:33
a len taka mala kontrola otazka - ma input file atribut multiple ?
16. 9. 2019 15:33:33
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415849
David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 15:47:00
Napsal ne;1544417
a len taka mala kontrola otazka - ma input file atribut multiple ?
Ano, urcite ma. Dialog pro vyber souboru umoznuje oznaceni klidne peti souboru.
16. 9. 2019 15:47:00
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415848
To je klasický problém lidí, co začínají s JS.
"var" vám hoistuje proměnnou k funkci, ne k "for" bloku. Callbacky pro event všechny referencují onu proměnnou z bloku funkce výše, a když se provádějí, je hodnota již poslední.
Příklad s vysvětlením:
JS Bin - Collaborative JavaScript Debugging
16. 9. 2019 15:47:34
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415847
David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 16:24:06
Napsal Miroslav Foltýn;1544423
To je klasický problém lidí, co začínají s JS.
"var" vám hoistuje proměnnou k funkci, ne k "for" bloku. Callbacky pro event všechny referencují onu proměnnou z bloku funkce výše, a když se provádějí, je hodnota již poslední.
Příklad s vysvětlením:
JS Bin - Collaborative JavaScript Debugging
Díky moc, vyzkoumám.
16. 9. 2019 16:24:06
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415846
David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 16:44:18
Napsal Miroslav Foltýn;1544423
To je klasický problém lidí, co začínají s JS.
"var" vám hoistuje proměnnou k funkci, ne k "for" bloku. Callbacky pro event všechny referencují onu proměnnou z bloku funkce výše, a když se provádějí, je hodnota již poslední.
Příklad s vysvětlením:
JS Bin - Collaborative JavaScript Debugging
Použil jsem tedy v cyklu s "j" let místo var. Výsledek tedy je, že console.log('obr:' + j) už opravdu vypisuje postupně vzrůstající hodnotu a nikoli tu poslední. Ovšem problém s výpisem rozměrů obrázků tu je stále.
tempImages nebo this má stále tu samou hodnotu a nemění se.
16. 9. 2019 16:44:18
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415845
Jestli kód netranspilujete, tak tím, že jste tam "jen tak" napsal "let", tak byste si měl být vědom toho, že vám to nebude fungovat v IE11 a z jiného důvodu ve starších verzích IE. https://caniuse.com/#search=let
---------- Příspěvek doplněn 16.09.2019 v 16:55 ----------
Co se týče velikosti obrázků... nebude to tím, že mají opravdu všechny stejné rozměry?
... Samozřejmě, pořád tam vkládáte do pole ten samý.
16. 9. 2019 16:49:10
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415844
David Musil
verified
rating uzivatele
(69 hodnocení)
16. 9. 2019 17:28:17
Napsal Miroslav Foltýn;1544451
Jestli kód netranspilujete, tak tím, že jste tam "jen tak" napsal "let", tak byste si měl být vědom toho, že vám to nebude fungovat v IE11 a z jiného důvodu ve starších verzích IE. https://caniuse.com/#search=let
---------- Příspěvek doplněn 16.09.2019 v 16:55 ----------
Co se týče velikosti obrázků... nebude to tím, že mají opravdu všechny stejné rozměry?
... Samozřejmě, pořád tam vkládáte do pole ten samý.
Jasně, už to vidím také... vkládal jsem s indexem imagesLoaded, což byla pořád 0. Moc díky.
Tu nefunkčnost s IE podle mě zvládnu vyřešit. Díky moc Miroslave.
16. 9. 2019 17:28:17
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415843
Myslím, že takových typo mají všichni programátoři za sebou habaděj. Jinak pro debugování se někdy hodí "debugger;", tak zkoušejte i to.
16. 9. 2019 17:30:25
https://webtrh.cz/diskuse/problem-s-uploadem-souboru-pres-js#reply1415842
Pro odpověď se přihlašte.
Přihlásit