| 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: 10 měsíců
|
|||
0