none
FileUpload1 - Dimension de Imagenes RRS feed

  • Pregunta

  • Hola,

     

    Se puede de alguna manera validar en la carga del archivo de imagen, el peso y las dimension??????

     

    Es decir, se puede validar que no se puedan cargar imagenes mayores a por ejemplo 800x600 y de peso 1mb?

     

    Gracias por su respuesta y si tienen un ejemplo vendria de 10.

     


    Augusto Tin
    domingo, 30 de mayo de 2010 3:23

Respuestas

  • hola

    te refieres a validarlo antes de realizar el upload de la imagen, o sea en el cliente ?

    lo pregunto porque Mauricio en sus respuesta apunta a validarlo en el servidor, no en el cliente

    el tema es que para validar en el cliente deberias realizar validaciones en javascript, y trabajar un archivo de esta forma puede no ser nada simples

    por ejemplo, con algo como esto validarioas que se seelcciones archivos de determianda extension

    ASP.Net FileUpload File Type Filter using JavaScript Validation

    o sea que sean archivos de imagen

    validar el tamaño del archivo va a ser dificil realziarlo desde el cliente, pero si podrias hacer algo como esto

    Validating FileSize of Asp.Net File Upload Control using JS script or Server side

    valida lo comentado por "chezhian_in05", veras que usa un CustomValidator, peor la validacion la ubica en el server, creo que es una forma piola de validad el tamaño del archivo

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 30 de mayo de 2010 4:49

Todas las respuestas

  • Para conocer el tamaño del archivo subido puedes usar :

    if ( FileUpload1.PostedFile.ContentLength > 1024*1024 )
    {
      // Código que graba el archivo
    }

    Para el tamaño de la imagen debes convertir FileUpload1.FileBytes en imagen y luego verificar las dimensiones de la imagen.

    Cordial saludo,


    Mauricio Atanache G. - MCP
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."
    • Propuesto como respuesta yoguille viernes, 11 de junio de 2010 23:35
    domingo, 30 de mayo de 2010 3:41
  • Por aqui encontré un código que convierte FileUpload1.FileBytes a Image :

    MemoryStream str = new MemoryStream(FileUpload1.FileBytes);
    System.Drawing.Image bmp = System.Drawing.Image.FromStream(str);

    Ya despues verificas :

    if (bmp.Width>800 || bmp.Height>600) { // No Graba la imagen al servidor }

    El código no lo he probado, pero debería funcionar.

    Cordial saludo,

     


    Mauricio Atanache G. - MCP
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."
    • Propuesto como respuesta yoguille viernes, 11 de junio de 2010 23:35
    domingo, 30 de mayo de 2010 3:47
  • hola

    te refieres a validarlo antes de realizar el upload de la imagen, o sea en el cliente ?

    lo pregunto porque Mauricio en sus respuesta apunta a validarlo en el servidor, no en el cliente

    el tema es que para validar en el cliente deberias realizar validaciones en javascript, y trabajar un archivo de esta forma puede no ser nada simples

    por ejemplo, con algo como esto validarioas que se seelcciones archivos de determianda extension

    ASP.Net FileUpload File Type Filter using JavaScript Validation

    o sea que sean archivos de imagen

    validar el tamaño del archivo va a ser dificil realziarlo desde el cliente, pero si podrias hacer algo como esto

    Validating FileSize of Asp.Net File Upload Control using JS script or Server side

    valida lo comentado por "chezhian_in05", veras que usa un CustomValidator, peor la validacion la ubica en el server, creo que es una forma piola de validad el tamaño del archivo

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 30 de mayo de 2010 4:49
  • Augusto,

    Proba esto...

     

     Dim vsArchivo As String
        Dim vsArchivoNombre, vsExtension As String
        Dim vnAncho, vnAlto As Double
        Dim viImagen As System.Drawing.Image
    
        If FileUpload1.HasFile Then
    
          vsArchivo = System.IO.Path.GetExtension(FileUpload1.FileName)
          vsArchivoNombre = HttpUtility.HtmlEncode(FileUpload1.FileName.ToLower())
          vsExtension = System.IO.Path.GetExtension(vsArchivo)
          viImagen = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream)
          vnAncho = viImagen.PhysicalDimension.Width
          vnAlto = viImagen.PhysicalDimension.Height
    
          If (vsExtension = ".jpeg" Or vsExtension = ".jpg" Or vsExtension = ".png") Then
          Else
            Label1.Text = "Solo archivos de Imagenes"
            Exit Sub
          End If
          If (FileUpload1.PostedFile.ContentLength > 2000000) Then
            Label1.Text = "El archivo no puede ser mayor a 2 MB"
            Exit Sub
          End If
          If (vnAncho > 800 OrElse vnAlto > 600) Then
            Label1.Text = "El archivo no puede superar los 800x600 px"
            Exit Sub
          End If
          Try
            FileUpload1.SaveAs("C:\Uploads\" & _
              FileUpload1.FileName)
            Label1.Text = "Nombre del Archivo: " & _
             FileUpload1.PostedFile.FileName & "<br>" & _
             "Tamaño del Archivo: " & _
             FileUpload1.PostedFile.ContentLength & " kb<br>" & _
             "Tipo de Archivo: " & _
             FileUpload1.PostedFile.ContentType
          Catch ex As Exception
            Label1.Text = "ERROR: " & ex.Message.ToString()
          End Try
          Label1.Text = "El Archivo se cargo exitosamente."
        Else
          Label1.Text = "Debe especificar un Archivo."
        End If
    

    Saludos

    Daniel

    • Propuesto como respuesta yoguille viernes, 11 de junio de 2010 23:34
    domingo, 30 de mayo de 2010 7:06
  • Hola Augusto,

    ¿Fue posible solucionar su problema?

    ¡Gracias!
    Rafael Fagundes - Marque la respuesta como correcta si te ha sido de utilidad!
    jueves, 10 de junio de 2010 13:34
    Moderador