Multiupload a max_post_size
- Allconius
- Člen | 313
Ahoj, jak řešíte zobrazování chyby u multiupload pokud velikost všech souborů překročí post_max_size ? Jde přidat na to nějaké pravidlo jako je třeba pro počet souborů?
$form->addMultiUpload('files', 'Files:')
->addRule($form::MaxLength, 'A maximum of %d files can be uploaded', 10);
po odeslání formu mi to totiž okamžitě vyhodí error 500 a k zpracování typu:
$total = 0;
foreach ($data->mediafiles as $size){
$total = $total + $size->getSize();
}
se už nedostanu. Jde mi o to jak uživateli zobrazit nějakou hlášku že je velikost odesílaných dat větší než je povoleno v php.ini
- m.brecher
- Generous Backer | 765
@Allconius
kde si ji zjistit před odesláním formu
javascriptem by to mělo jít nějak takto, zjišťovat celkovou velikost ihned po výběru souborů inputem a blokovat odeslání formuláře, nicméně nebude úplně jednoduché to vkomponovat do stávající validace Nette formulářů:
document.getElementById('file').addEventListener('change', () => {
let size = 0
this.files.forEach(file => size += file.size)
console.log(size);
})
- Allconius
- Člen | 313
m.brecher napsal(a):
@Allconius
kde si ji zjistit před odesláním formu
javascriptem by to mělo jít nějak takto, zjišťovat celkovou velikost ihned po výběru souborů inputem a blokovat odeslání formuláře, nicméně nebude úplně jednoduché to vkomponovat do stávající validace Nette formulářů:
document.getElementById('file').addEventListener('change', () => { let size = 0 this.files.forEach(file => size += file.size) console.log(size); })
Ahoj, díky, udělal jsem to zatím aspoň přes ten alert:
<input n:name="mediafiles" id="mediafiles" max="{$post_max_size}" class="form-control rounded-0" type="file" multiple>
$('#mediafiles').change(function(){
var fp = $("#mediafiles");
var max = fp.attr("max");
var lg = fp[0].files.length;
var items = fp[0].files;
var fileSize = 0;
if (lg > 0) {
for (var i = 0; i < lg; i++) {
fileSize = fileSize+items[i].size;
}
console.log(max)
console.log(fileSize)
if (fileSize>max){
alert('Velikost je větší než '+max);
}
}
});