Principales respuestas
FileUpload1 - Dimension de Imagenes

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
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- Propuesto como respuesta yoguille viernes, 11 de junio de 2010 23:35
- Marcado como respuesta Rafael FagundesModerator miércoles, 30 de junio de 2010 12:28
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
-
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
-
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- Propuesto como respuesta yoguille viernes, 11 de junio de 2010 23:35
- Marcado como respuesta Rafael FagundesModerator miércoles, 30 de junio de 2010 12:28
-
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
-