Autor | Zpráva | ||
---|---|---|---|
blahapet Profil |
#1 · Zasláno: 9. 4. 2025, 06:56:06
Ahoj, nějak se mi nedaří zkontrolovat přes JS velikost nahraných fotografií. Mám tento soubor:
function TotalSize(){ var Input = document.getElementsByClassName("fotografie"); var totalSize = 0; for(x = 0; x < Input.length; x++){ if(Input[x].value != ''){ Files = Input[x].files; totalSize += Files[x].size; } } return totalSize; } </script> <form action="/admin/" method="post" enctype="multipart/form-data"> <input type="hidden" name="addPhotos" value="ok" /> <div class="obal-polozky"> <div class="polozky" id="polozky"> <div class="polozka" id="sablona"> <input type="hidden" name="item[]" value="ok"> <input type="file" class="fotografie" name="fotografie[]" id="fotografie" accept="image/jpeg" size="30" required="required" /> <input class="popisFoto" type="text" name="title[]" size="30" placeholder="Popis fotografie" /> <span class="odebrat" onclick="odebrat(this)">×</span> </div> </div> <span class="pridat" onclick="pridatPole()">Další fotografie</span> <p style="text-align:center;margin-top:50px"><input type="submit" id="submit" value="Přidat fotografie" /> <input type="button" onclick="alert(TotalSize())" value="Zjisti velikost souborů" /></p> </div> <script> var prvniPolozka = document.getElementById('sablona'); var sablona = prvniPolozka.cloneNode(true); document.getElementById('sablona').style.display = ''; document.getElementsByClassName('odebrat')[0].style.visibility = 'hidden'; function pridatPole() { var kopie = sablona.cloneNode(true); document.getElementById('polozky').appendChild(kopie); } function odebrat(el) { var polozka = el.parentNode; polozka.parentNode.removeChild(polozka); } </script> </form> Když vložím první fotografii a kliknu na button Zjisti velikost souborů, tak mi to v alertu vypíše velikost prvního souboru. Pokud přidám další fotografii, tak se už ani prázdej alert neobjeví, Děkuju moc za pomoc. |
||
Kajman Profil |
#2 · Zasláno: 9. 4. 2025, 08:14:58
Files je seznam souborů (v jednom inputu je možné zvolit více souborů, pokud to je povolené), tak si nad ním udělejte další cyklus a nepoužívejte jako index tohoto pole x, protože to je index z jiného pole.
|
||
blahapet Profil |
#3 · Zasláno: 9. 4. 2025, 10:08:04
Díky za nasměrování, nakonec jsem to vyřešil jinak. JS kód jsem umístil dolů pod formulář:
function checkTotalSize(){ var totalSize = 0; $(".fotografie").each(function() { for (var i = 0; i < this.files.length; i++) { totalSize += this.files[i].size; } }); if(totalSize > 50000000){ alert('Byla překročena kvóta 50 MB pro velikost nahraných fotografií!'); return false; }else{ return true; } } |
||
Časová prodleva: 7 měsíců
|
0