es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplazando el control Ajaxfileupload en una aplicación de Windows Forms

Tenemos un sitio de ASP.NET heredado con formularios de Windows que utiliza el control AjaxFileUpload para gestionar las cargas de archivos. Uno de nuestros problemas es que tenemos distintos tipos de archivos para cargar, pero estos tipos no se distinguen por la extensión, sino por un elemento justo antes de la extensión, por ejemplo: .gh.zip vs. .gy.zip. Parece ser que si agrego uno de estos, pero no el otro, a AllowedFileTypes, no permite ninguno. ¿Es posible incorporar algún código adicional de validación en JS para evitar un nombre de archivo inválido, o tendría que reemplazar el módulo completo por otra cosa? En tal caso, ¿cuál sería la recomendación para algo que sea lo menos tiempo consumidor posible y que ofrezca una cantidad razonable de configurabilidad?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible agregar código de validación de JS adicional para evitar un nombre de archivo no válido. Puede usar el evento onClientUploadComplete del control AjaxFileUpload para validar el nombre del archivo antes de cargarlo. Aquí hay un ejemplo de código que muestra cómo se puede hacer esto:

    function validateFileName(sender, args) {
        var fileName = args.get_fileName();
        if (!/\.gh\.zip$|\.gy\.zip$/.test(fileName)) {
            args.set_errorMessage("Tipo de archivo no válido. Solo se permiten archivos .gh.zip y .gy.zip.");
            args.set_errorCode(1);
        }
    }
    
    <ajaxtoolkit:ajaxfileupload id="FileUpload1" allowedfiletypes=".jpg,.jpeg,.png" onclientuploadcomplete="validateFileName"></ajaxtoolkit:ajaxfileupload>
    

    Si el nombre del archivo no es válido, se llama al método set_errorMessage para mostrar un mensaje de error, y se llama al método set_errorCode para evitar que se cargue el archivo. Tenga en cuenta que la propiedad AllowedFileTypes está configurada como “.jpg,.jpeg,.png” en este ejemplo, pero puede cambiarla a “.gh.zip,.gy.zip” para permitir solo esos tipos de archivo.

    Si desea reemplazar todo el módulo con otra cosa, una buena alternativa es el complemento jQuery File Upload. Es un complemento de carga de archivos altamente configurable que admite arrastrar y soltar, carga de múltiples archivos y muchas otras funciones. También está bien documentado y tiene una gran comunidad de usuarios, por lo que no debería ser demasiado difícil encontrar ayuda si tiene algún problema.

Comments are closed.