Validar Extensiones en AsyncFileUpload.

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
   //Función para mitigar que el usuario adjunte archivos que no son de extensión valida.
   function UploadStart(remitente, args) 
   {

         //Se encapsula en la variable [_fileName] el nombre del archivo adjunto.
         var _fileName = args.get_fileName();

         //Se encapsula en la variable [_fileExtension] la extensión del archivo adjunto.
         var _fileExtension = _fileName.substring(_fileName.lastIndexOf(".") + 1);

         //Se encapsula en el arreglo [_extensions] todas las extensiones de archivo que seran validas.
         var _extensions = ["pdf", "jpg", "tiff", "doc", "docx"];

         //Se inicializar una variable de control.
         var _flag = false;

         /*
         Se recorre el arreglo[_extensions] para comprobar si la extensión del archivo adjunto es 
         valida; si es valida se asigna el valor true a la variable [_flag], en caso contrario se 
         asigna el valor false. 
         */ 
         for (var i = 0; i < _extensions.length; i++) 
         {
            if (_extensions[i] == _fileExtension) 
            {
               _flag = true;
               break;
            }
         }

         /*
         Se valida si la variable [_flag] tiene el valor de true; si es asi entonces se continua
         con el proceso de carga, en caso contrario se emite un Alert() para indicarle al usuario
         que la extensión del archivo adjunto es invalida, terminando con la limpieza del                                   asynFileUpload para adjuntar un nuevo archivo.
         */

         if (_flag) 
            return true; 
         else 
         {            

            //Se crea la variable [_error] para encapsular una excepción.
            var _error = new Error();

         //Se define el mensaje para la excepción encapsulada en la variable [_error].
         _error.message = '\n\n[Archivo con extensión invalida]\n\nLas extensiones de archivo           permitidas son las siguientes: *.doc, *.docx, *.jpg, *.pdf y *.tiff.';

         /*
         Se obtienen todos los controles inputs que conforman al control [afuDocumentos] y se                    encapsulan en la variable [_controls].

         */

         var _controls = $('#afuDocumentos').find('input');

         //Se recorre el arreglo [_controls] para limpiar el contenido.
         for (var i = 0; i < _controls.length; i++) 
         {
            if (_controls[i].type == "file") 
            {
                _controls[i].value = "";
               _controls[i].style.backgroundColor = "white";
            }
         }

         //Se lanza la excepción en pantalla.
         throw (_error);

         //Se anula el proceso de carga del archivo.
         return false;
     }
}
</script>
<asp:asyncfileupload id="afuDocumentos" runat="server" clientidmode="static" 
onclientuploadstarted="UploadStart"/>



 

Agregar comentario

Loading