File API

by giacal

HTML

<form method="post" enctype="multipart/form-data">
    <input type="file" name="docs" multiple="multiple"><br/>
    <strong>File selezionati:</strong>
    <ul>
    
    </ul>
    <input type="submit">
</form>

JavaScript

// esempio di stampa:
// registrazione.png - 959Kb - image/png

var file = document.forms[0].docs,
    ul = document.querySelector('ul');

file.addEventListener('change', printFiles, false);

function printFiles(evt){
    var fl = evt.target.files,
        msg = "";        
    ul.innerHTML = "";

    for(var x=0; x < fl.length; x ++){
        var fli = fl.item(x);
        ul.insertAdjacentHTML('beforeend', "<li>" + fli.name + " " + Math.round(fli.size/1000) + "kB " + fli.type);
        
        if(fli.size > 100){
            msg = msg + " file:" + fli.name + "(" + fli.size +"B)\n";
        } 
        
    }

    if(msg!=""){
evt.target.setCustomValidity("Alcuni file superano la dimensione prevista\n" + msg);        
    }
}