var $filesToUploadContainer = undefined; var $filesToUploadList = undefined; var $filesToUploadInput = undefined; var $filesToUploadInputArray = undefined; $(document).on('inizialize', function() { $filesToUploadContainer = undefined; $filesToUploadList = undefined; $filesToUploadInput = undefined; $filesToUploadInputArray = undefined; }); function setFilesToUploadElement(el) { $filesToUploadContainer = $(el).closest('[data-type="filesToUpload"]'); $filesToUploadList = $filesToUploadContainer.find('[data-id="fileList"]'); $filesToUploadInputArray = $filesToUploadContainer.find('[data-id="filesToUpload"]'); } function updateFileList() { $filesToUploadList.html(''); value = $filesToUploadInputArray[0]; if (value.files.length == 0) { $filesToUploadList.html($(value).attr('data-none')); } else { files = value.files[0]; files.idx = 0; if (files.type.match('image.*')) { var reader = new FileReader(); reader.onload = (function(theFile) { return function(e) { $filesToUploadList.html(escape(theFile.name)); }; })(files); // Read in the image file as a data URL. reader.readAsDataURL(files); } else { $filesToUploadList.html(files.name); }; } } function errorFileList(msg) { alert(msg); /* // cancella elemento caricato $filesToUploadInput.val(''); updateFileList(); $filesToUploadList.html(msg); */ } // carica l'immagine $(document).on('change', '[data-id="filesToUpload"]', function() { // recupero elementi associati all'input $filesToUploadInput = $(this); setFilesToUploadElement(this); var currentFiles = event.target.files; var num_files = currentFiles.length; var type_mime = ""; var max_files = $filesToUploadContainer.attr('data-max-files'); var max_size = $filesToUploadContainer.attr('data-max-size'); if (max_files === undefined) max_files = 1; if (max_size === undefined) max_size = 5; var file = event.target.files[0]; if (file === undefined) { $filesToUploadInput.val(''); updateFileList(); return; } if (file.size >= max_size*1024*1024) { txt_max_size = 'ERRORE: Dimensione massima di {num} Mb'; txt_max_size = txt_max_size.replace("{num}", max_size); errorFileList('File:\n'+file.name+'\n'+txt_max_size); return; } var matchAccepter = $filesToUploadInput.attr('accept').split(','); var accept_ok = false; for (a=0; a < matchAccepter.length; a++) { if (file.type.match(matchAccepter[a])) accept_ok = true; } if (!accept_ok) { errorFileList('File:\n'+file.name+'\nERRORE: Formato del file non valido'); return; } setFilesToUploadElement(this); updateFileList(); });