1// Validar el nombre del fichero, comprobar que no contiene caracteres no permitidos 2// Comprobar que la extensión del fichero no es EXE 3function OnClientValidarFileUploading(sender, args) { 4 var fileName = args.get_fileName(); 5 var extensionesPermitidas = sender.get_allowedFileExtensions(); 6 7 var numeroExtensiones = tieneVariasExtensiones(fileName); 8 switch (numeroExtensiones) { 9 case 0: // No tiene extensión 10 args.fileName = ""; 11 args.set_cancel(true); 12 alert('El fichero no tiene extensión.'); 13 break; 14 case 1: // Tiene una extensión 15 if (!isFichNameValid(fileName)) { 16 var $row = $(args.get_row()); 17 var errorMessage = "El nombre del fichero contiene caracteres no permitidos. ~¨`!ÃñáéÃóúüÃÃÃÃÃô``^¨'·ç@#$%\^&*+=\[\]\\';,/{}|\\:<>\?¿"; 18 var span = mostrarError(errorMessage); 19 $row.addClass('ruError'); 20 $row.append(span); 21 args.set_cancel(true); 22 //alert("El nombre del fichero contiene caracteres no permitidos. ~¨`!ÃñáéÃóúüÃÃÃÃÃÃç#$%\^&*+=\[\]\\';,./{}|\\:<>\?¿ \n" + 23 // "Modifique el nombre del fichero."); 24 } 25 break; 26 // Comprobar que la extensión está permitida 27 //var fileExtention = fileName.substring(args.get_fileName().lastIndexOf('.') + 1, fileName.length); 28 //if (!isExtensionFichValid(extensionesPermitidas.toLowerCase(), fileExtention.toLowerCase())) { 29 // //args.set_cancel(true); 30 // alert("La extensión del fichero no está permitida."); 31 //} 32 33 case 2: // Tiene más de una extensión 34 var $row = $(args.get_row()); 35 var errorMessage = "El fichero solo puede tener una extensión."; 36 var span = mostrarError(errorMessage); 37 $row.addClass('ruError'); 38 $row.append(span); 39 args.set_cancel(true); 40 break; 41 } 42} 43 44function mostrarError(errorMessage) { 45 var input = '<span class="ruErrorMessage">' + errorMessage + ' </span>'; 46 47 return input; 48} 49 50// Comprobar si el fichero tiene más de una extensión 51function tieneVariasExtensiones(str) { 52 var count = (str.match(/\./g) || []).length; 53 if (count == 0) { 54 return 0; // No tiene extensión 55 } else if (count == 1) { 56 return 1; // Solo tiene una extensión 57 } else if (count > 1) { 58 return 2; // Tiene más de una extensión 59 } 60} 61 62// Comprobar que el nombre del fichero no contiene caracteres raros que ajax transforma y que impiden que se pueda cargar el fichero en el servidor 63function isFichNameValid(str) { 64 return !/[~¨`!ÃñáéÃóúüÃÃÃÃÃô``^¨'·ç@#$%\^&*+=\[\]\\';,/{}|\\":<>\?¿]/g.test(str); 65} 66 67// Comprobar que la extensión del fichero es EXE, extensión no permitida 68function isExtensionFichValid(extensionesPermitidas, fileExtention) { 69 if (extensionesPermitidas.indexOf(fileExtention) == -1) { 70 return false; 71 } else { 72 return true; 73 } 74 //var fileExtention = filename.substring(filename.lastIndexOf('.') + 1, filename.length); 75 //if (fileExtention.toUpperCase() == 'EXE') { 76 // return false; 77 //} else { 78 // return true; 79 //} 80} 81 82function ComprobarNombreFichero(sender, args) { 83 var fileName = args.get_fileName(); 84 if (!isFichNameValid(fileName)) { 85 args.set_cancel(true); 86 alert("El nombre del fichero contiene caracteres no permitidos. ~¨`!ÃñáéÃóúüÃÃÃÃÃÃç#$%\^&*+=\[\]\\';,./{}|\\:<>\?¿ \n" + 87 "Modifique el nombre del fichero."); 88 } 89} 90 91// Función del lado del cliente que se ejecutará si el archivo seleccionado tiene una extensión no válida o el tamaño del archivo supera el MaxFileSize 92function ValidarExtensionPermitidaSize(sender, args) { 93 var errorMessage = ''; 94 var fileExtention = args.get_fileName().substring(args.get_fileName().lastIndexOf('.') + 1, args.get_fileName().length); 95 if (args.get_fileName().lastIndexOf('.') != -1) { 96 // Comprobar si la extensión es correcta 97 if (sender.get_allowedFileExtensions().toLowerCase().indexOf(fileExtention.toLowerCase()) == -1) { 98 // Extensión no permitida 99 errorMessage = "La extensión del fichero no está permitida."; 100 } 101 //else { 102 // El tamaño del fichero sobrepasa el tamaño máximo permitido (MaxFileSize) 103 //if (args.get_fileSize() > sender.get_maxFileSize()) { 104 // errorMessage = "Fichero demasiado grande."; 105 //} 106 //} 107 } else { 108 // El fichero no tiene extensión 109 errorMessage = "La extensión del fichero no está permitida."; 110 } 111 if (errorMessage != '') { 112 var $row = $(args.get_row()); 113 var span = mostrarError(errorMessage); 114 $row.addClass('ruError'); 115 $row.append(span); 116 } 117} 118 119function OnClientValidarFileUploaded(sender, args) { 120 //var contentType = args.get_fileInfo().ContentType; 121 var filename = sender.getUploadedFiles(); 122 var fileExtention = filename[0].substring(filename[0].lastIndexOf('.') + 1, filename[0].length); 123 ValidarFichero.ValidarContenidoFichero.ComprobarContenidoFicheroExtension(filename[0], SinErroresComprobarContenidoFicheroExtension, ErroresComprobarContenidoFicheroExtension); 124 //PageMethods. 125 //var currentRowElement = args.get_row(); 126 //alert(currentRowElement); 127 //alert("Fichero cargado.") 128} 129
130function SinErroresComprobarContenidoFicheroExtension(resultado) { 131 132} 133 134function ErroresComprobarContenidoFicheroExtension(resultado) { 135 136}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.