Cómo agregar filtro para el control fileupload en asp.net? Quiero un filtro para el Archivo de Plantilla de Word (.dot).

InformationsquelleAutor Sauron | 2009-06-09

5 Comentarios

  1. 4

    También podrías hacer un javascript alternativa a la filtración lado del servidor (que probablemente querrás hacerlo así), pero esto ahorra el cliente de pasar el tiempo de espera en una carga para terminar, sólo para descubrir que era el tipo equivocado.

    http://javascript.internet.com/forms/upload-filter.html

    Así que, básicamente, usted sólo tiene que ejecutar una función de javascript en «enviar» que analiza fuera de la extensión del archivo que has subido y les da una alerta si no es del tipo correcto.

    También podría utilizar el documento.forms[0].submit(); en lugar de pasar el formulario de referencia a través de (como ASP.NET realmente sólo se utiliza un único formulario (a menos que hagan algo funky))

  2. 2
            string fileName = fuFiles.FileName;
    
            if(fileName.Contains(".dot"))
            {
                fuFiles.SaveAs(Server.MapPath("~/Files/" + fileName));
            }
  3. 2

    Si te refieres al filtro de las extensiones de archivo cliente/lado, con el navegador estándar de selección de archivos, no es posible.
    Para hacer eso, debe utilizar un tipo mixto de carga, tales como SWFUpload, basado en un flash uploader sistema (que es realmente un buen techinque: te permite publicar más de un archivo a la vez).

    La única cosa que usted puede hacer en el modo estándar es para filtrar el ya publicado archivo, y me sugieren el uso del Sistema.IO.Ruta de acceso de nombres de utilidad:

    if (Path.GetExtension(upFile.FileName).ToUpper().CompareTo(".DOT") == 0) 
    {
        /* do what you want with file here */ 
    }
  4. 1

    Compruebe el nombre del archivo subido serverside:

    FileUpload1.PostedFile.FileName

    A menos que desee utilizar java o algo similar en el cliente, que realmente no hay mucho que usted puede hacer para filtrar los archivos subidos antes de que se envíen al servidor.

  5. 1

    Aquí tengo un pequeño método que he utilizado para filtrar qué tipo de archivos pueden ser subidos por el fileupload control denominado fuLogo.

    if (fuLogo.HasFile)
            {
                int counter = 0;
                string[] fileBreak = fuLogo.FileName.Split(new char[] { '.' });
                logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString()+ "." + fileBreak[1]);
                if (fileBreak[1].ToUpper() == "GIF" || fileBreak[1].ToUpper() == "PNG")
                {
                    while (System.IO.File.Exists(logo))
                    {
                        counter++;
                        logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString() + "." + fileBreak[1]);
                    }
                }
                else
                {
                    cvValidation.ErrorMessage = "This site does not support any other image format than .Png or .Gif . Please save your image in one of these file formats then try again.";
                    cvValidation.IsValid = false;
                }
                fuLogo.SaveAs(logo);
            }

    básicamente, la primera vez que Recorre el directorio para ver si ya existe un archivo. Si el archivo existe, (ejemplo picture0.gif) , se incrementará el contador (a picture1.gif). Evita que los diferentes usuarios se superponen las imágenes deben sus fotos tienen el mismo nombre.

    • esto producirá un error si el nombre de archivo es miarchivo.1.png, utilice la Ruta de acceso.GetExtension(theFileName) en lugar

Dejar respuesta

Please enter your comment!
Please enter your name here