Multiple File Upload Nette 2.1 – maximální počet nahrávaných souborů v jednom requestu
- James
- Člen | 54
Ahoj,
je možné v Nette 2.1 u Multiple File Upload
$form->addUpload('files', 'Soubory:', TRUE)
nějakým způsobem možné zjistit počet vybraných souborů, které se následně mají uploadovat? Narazil jsem totiž na problém, že pokud vyberu více jak 20 souborů, tak mi to nahlásí chybu v laděnce
User Notice
Possible problem: you are starting session while already having some data in output buffer. This may not work if the outputted data grows. Try starting the session earlier.
a v PHP se jedná o
Warning: Maximum number of allowable file uploads has been exceeded
Našel jsem že v nastavení PHP, soubor php.ini je řádek s údajem, který udává maximální počet souborů, které je možné uploadovat při jednom requestu
max_file_uploads = 20
Protože asi by bylo dobré, kdyby se v závislosti na této hodnotě dalo už předem před samotným uploadem uživatele, který se pokouší nahrát víc jak 20 souborů o tom, že je něco špatně. Nebo se tento problém řeší nějakým jiným způsobem. Děkuji za rady.
- s4muel
- Člen | 92
priamo v nette neviem, ale keby si to kontroloval jquery, tak toto by mohlo ist
$('#multipleinput').change(function () {
if (2 < this.files.length) {
alert('maximalne 2 subory');
}
});
$('#form_with_multipleinput').submit(function () {
if (2 < this.files.length) {
return false;
}
});
Editoval s4muel (20. 1. 2014 16:48)
- romiix.org
- Člen | 343
Nepríjemný problém. Toto by asi mal riešiť priamo FW. V špecifikácií HTML som žiaľ nenašiel obmedzenie množstva nahrávaných súborov.
Napadá mi jedno nepekné čiastkové riešenie. Premennú dodať cez data atribút do frontendu
->setAttribute('data-nette-max-count', ini_get("max_file_uploads"));
a následne spracovať cez JS
$(function() {
$( "input[type=file]" ).change(function() {
if ($(this).data("nette-max-count")<$(this).get(0).files.length)
alert("Maximal count of uploaded files is " + $(this).data("nette-max-count") + "!");
});
});
Pravdaže nie presne týmto JS:) Ako rozšírenie netteForms.js by to bolo určite lepšie.
- James
- Člen | 54
honos napsal(a):
A myslis ze zpracovani vice jak 20 souboru neprekroci casovy limit zpracovani php skriptu ktery je vetsinou nastaveny na 30 sekund?
@honos: Máš pravdu, že v tomhle by mohl nastat problém. Úplně jsem si to neuvědomil. Mě spíš ani tolik nešlo o navýšení souborů o víc než 20, ale spíš na to nějakým způsobem upozornit uživatele.
Editoval James (21. 1. 2014 21:27)