Foros del Web » Programando para Internet » ASP Clásico »

File.Image Type

Estas en el tema de File.Image Type en el foro de ASP Clásico en Foros del Web. Estimados amigos: En el siguiente código deseo introducir la opción de que si no es GIF, JPG, PNG o BMP, me devuelva un error "Imagen ...
  #1 (permalink)  
Antiguo 29/04/2003, 08:58
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
File.Image Type

Estimados amigos:

En el siguiente código deseo introducir la opción de que si no es GIF, JPG, PNG o BMP, me devuelva un error "Imagen no aceptada".

No sé cómo hacerlo y he dado miles de vueltas por Internet antes de enviar tal consulta.

Gracias,

Emajesus

-estoy alojado en Brinkster X4-


<%
Set Upload = Server.CreateObject("Persits.Upload.1")


' Limit file size to 20000 bytes, throw an exception if file is larger
Upload.SetMaxSize 20000, True

' Intercept all exceptions to display user-friendly error
On Error Resume Next



Upload.Save "attachfile"



' 8 is the number of "File too large" exception


If Err.Number = 8 Then
Response.Write "El banner que deseas enviar excede la capacidad reservada."
Else

If Err <> 0 Then
Response.Write "Un error ha ocurrido: " & Err.Description
Else

Response.Write "Enviado con éxito"
End If

End If


%>
  #2 (permalink)  
Antiguo 29/04/2003, 10:22
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
¡Vaya Camelo!

Y yo que pensé que el código anterior evitaba que se cargasen en el archivo las imágenes superiores a 20000.

¿Existe alguna posibilidad de evitar que sean almacenadas en el fichero aquellas imágenes de más de 20000 de tamaño?

Un saludo,

Emajesus
  #3 (permalink)  
Antiguo 29/04/2003, 10:30
Avatar de buliwyf  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 221
Antigüedad: 22 años, 5 meses
Puntos: 1
"cualquier" componente o codido par upload guarda el nombre del archivo en una variable.... en tu caso es attachfile. siendo asi:

extension=right(attachfile,3)

con eso haces in if ir listo....

era eso lo que buscabas? ¿?
__________________
RTFM antes de preguntar...
  #4 (permalink)  
Antiguo 29/04/2003, 10:46
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
Lo del tamaño ya lo he resuelto.

No obstante, me gustaría que me comentases que he de añadir al código anterior para que no almacene aquellos ficheros que no sean GIF, JPG, BMP o PNG. De tal manera que no entren en conflicto las órdenes.

He probado con unos códigos pero tan sólo avisan y no evitan que el fichero (que no es imagen) se almacene.

Es que ando muy perdido.

Gracias,

Emajesus
  #5 (permalink)  
Antiguo 29/04/2003, 12:04
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
A ver si así tengo más suerte.

Deseo que si el tamaño es excesivo, aparezca un pequeño mensaje de error (no en una ventana de diálogo, sino en el texto, como en el caso de las imágenes GIF o JPG).

Os adjunto el código:

<HTML>
<BODY>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")


Upload.OverwriteFiles = False


' Intercept all exceptions to display user-friendly error
On Error Resume Next


' Limit file size to 20000 bytes, throw an exception if file is larger
Upload.SetMaxSize 20000, True


Upload.Save "attachfile"


For Each File in Upload.Files
Ext = UCase(Right(File.Path, 3))
If Ext <> "GIF" and Ext <> "JPG" Then
Response.Write "" & File.Name & " no es un archivo válido"
File.Delete
End If
Next


%>

<P>

<%
For Each File in Upload.Files
Response.Write File.Name & " [" & File.Name & ", " & File.Size &" bytes]<BR>"
Next
%>

<P>

<%
For Each Item in Upload.Form
Response.Write Item.Name & " [" & Item.Value & "]<BR>"
Next
%>

</BODY>
</HTML>
  #6 (permalink)  
Antiguo 29/04/2003, 12:45
Avatar de buliwyf  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 221
Antigüedad: 22 años, 5 meses
Puntos: 1
Tip. Usa <%on error resume next%> para capturar todos los errores y detener la ejecucion, me dices que el numero 8 es el error de tamaño, entonces:

[CODE]
...
<%
Upload.SetMaxSize 20000, True
On Error Resume Next

Upload.Save "c:\aqui va tu ruta"

If Err.Number = 8 Then
Response.Write "El Archivo que esta tartando de guardar es muy grande"
Else
If Err <> 0 Then
Response.Write "El siguiente error ha ocurrido: " & Err.Description
Else
Response.Write "El archivo se ha guardado satisfactoriamente"
End If
End If
%>

saludos!
__________________
RTFM antes de preguntar...
  #7 (permalink)  
Antiguo 29/04/2003, 15:29
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
Ahhhhhhhhhhhhh!

¿Y esto por qué no me funciona?

Llevo más de 8 horas sentado para hacer un Upload con mensajes de error y no hago más que recibir eso: MENSAJES DE ERROR ... el maldito mensaje 500.




<%
Set Upload = Server.CreateObject("Persits.Upload.1")


Upload.OverwriteFiles = False


' Intercept all exceptions to display user-friendly error
On Error Resume Next


' Limit file size
Upload.SetMaxSize 20000, True


Upload.Save "attachfile"


If Err.Number = 8 Then
Response.Write "<font color=red><b>+ 50KB</b></font><br>"
End If

' Process all files received
For Each File in Upload.Files

Ext = UCase(Right(File.Path, 3))
If Ext <> "GIF" and Ext <> "JPG" Then
Response.Write "<font color=red><b>¡GIF o JPG sólo!</b></font><br>"
File.Delete
Exit For
End If


%>
  #8 (permalink)  
Antiguo 29/04/2003, 21:49
Avatar de buliwyf  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 221
Antigüedad: 22 años, 5 meses
Puntos: 1
Tienes un for incompleto...
Código:
<%
Set Upload = Server.CreateObject("Persits.Upload.1")

Upload.OverwriteFiles = False 

On Error Resume Next

Upload.SetMaxSize 20000, True

Upload.Save "attachfile"


If Err.Number = 8 Then 
Response.Write "<font color=red><b>+ 50KB</b></font><br>"
End If

'Aqui empieza el for --->
For Each File in Upload.Files

Ext = UCase(Right(File.Path, 3)) 
If Ext <> "GIF" and Ext <> "JPG" Then
Response.Write "<font color=red><b>¡GIF o JPG sólo!</b></font><br>"
File.Delete
End If
next
'<------------- Aqui termina
%>
creo que eso, no veo mas nada raro

cuentanos como te fue

saludos
__________________
RTFM antes de preguntar...
  #9 (permalink)  
Antiguo 30/04/2003, 00:46
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
GRACIAS

buliwyf,

Enormemente agradecido. Por fin ha funcionado.

Sin tu ayuda, aún andaría navegando por un 'End If'.

Gracias por todo,

Emajesus
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:07.