Controllo completo sulla dimensione dei file in upload, lato client. Supporto per gli input "multiple" dell'HTML5.
In questo esempio:
Nella sezione head del documento aggiungiamo il link allo script base:
<head>
...
<script src="JS/cfl.2.0.min.js"></script>
...
</head>
L'oggetto new CFL() dev'essere inizializzato quando il documento è caricato. Prende in input i parametri sotto elencati, tutti opzionali:
$(function(){
//F is the <form> vanilla html element
//f is the <input type="file"> vanilla html element
//mega is the size triggering the error
cflform = new CFL({
forms : '.checkme', //selector for forms. default = ""
files : '.checkme', //selector for file input. default = ""
before : function(F){ /*...*/ }, //callback before checking a form
onsubmit : function(F){ /*...*/ }, //callback if the form can be submitted
onerror : function(F){ /*...*/ }, //callback if the form cannot be submitted
//-------------------------------------------------------------------------------------------
checkForm: true, //enable onerrorForm(). default = true
maxFormMB: 1.5, //max Mb sended by a single form. default = 2
onerrorForm: function(f,mega){ /*...*/ }, //callback if the sum of file exceed size limit maxFormMB
//---
checkMultFiles: true, //enable onerrorMultFiles(). default = true
maxMultFileMB: 1, //max Mb for single file input with "multiple" attribute. default = 1
onerrorMultFiles: function(f,mega){ /*...*/ }, //callback if the multiple input exceed size limit maxMultFileMB
//---
checkFiles: true, //enable onerrorFiles(). default = true
maxFileMB: 0.25, //max Mb for each file. default = 1
onerrorFiles: function(f,name,mega){/*...*/} //callback if a file size is bigger than maxFileMB
});
});
Tutti i callback sono a cura del programmatore.
Un esempio del loro utilizzo si trova in questa pagina (ispeziona con strumento sviluppatori).