calcular las dimansiones de una imagen
Alguien sabe como calcular el alto y el ancho de una imagen que seleccionemos?
Tiene algo que ver el "request"?
Tiene algo que ver el "request"?
Yo he dado con una solución que combina ASP y JavaScript que requiere 2 pasos:
1º.- Subes la imagen al servidor, la guardas y la muestras en pantalla comprobando su tamaño (esto último con código JavaScript):
<%
Código ASP necesario para guardar la imagen en el servidor.
(en otras aportaciones de este mismo foro tienes como hacerlo)
Al final la ruta de la imagen debe quedar en la variable NomFile
que se utiliza más abajo
%>
<html>
<head>
<script>
function ChequearImagen()
{
var x=document.images["imagen"].width; // Ancho de la imagen
var y=document.images["imagen"].height; // Alto de la imagen
if(x>120 || y>120)
document.f.Opcion.value="IMAGEN_MUY_GRANDE";
else
document.f.Opcion.value="IMAGEN_OK";
document.f.submit();
}
</script>
</head>
<body onload="ChequearImagen()">
<table width="100%" height="100%"><tr valign="middle"><td align="center">
<table border="1" cellspacing="0" cellpadding="0"><tr><td>
<img src="../img/profiles/<%=NomFile%>" name="imagen">
</td></tr></table>
</td></tr></table>
</body>
<form name="f" method="post" action="paso2.asp">
<input type="hidden" name="NomFile" value="<%=NomFile%>">
<input type="hidden" name="Opcion">
</form>
</html>
El código anterior muestra la imagen, comprueba sus dimensiones, para este caso, se considera que la imagen válida debe ser de dimensión no superior a 120x120 pixels, esto se comprueba en la función JavaScript ChequearImagen(), puedes cambiar ese código según te interese.
Tras la comprobación se hace submit() del formulario f que aparece al final enviando los parámetros NomFile y Opcion a la página paso2.asp (si te resultara de utilidad puedes enviar también el ancho y el alto de la imagen añadiendo dos campos más al formulario y modificando la función ChequearImagen()).
2º.- El código del fichero paso2.asp podría ser el siguiente:
<%
NomFile=Request.form("NomFile")
OPCION=Request.form("Opcion")
if OPCION="IMAGEN_MUY_GRANDE" then
Código ASP para este caso
(Yo aquí borro la imagen del servidor, ya que tan grande no la quiero )
elseif OPCION="IMAGEN_OK" then
Código ASP para este caso
(Aquí yo guardo la ruta NomFile en una base de datos )
end if
%>
Así he resuelto yo este problema, si alguien encuentra una solución menos complicada que lo diga.
1º.- Subes la imagen al servidor, la guardas y la muestras en pantalla comprobando su tamaño (esto último con código JavaScript):
<%
Código ASP necesario para guardar la imagen en el servidor.
(en otras aportaciones de este mismo foro tienes como hacerlo)
Al final la ruta de la imagen debe quedar en la variable NomFile
que se utiliza más abajo
%>
<html>
<head>
<script>
function ChequearImagen()
{
var x=document.images["imagen"].width; // Ancho de la imagen
var y=document.images["imagen"].height; // Alto de la imagen
if(x>120 || y>120)
document.f.Opcion.value="IMAGEN_MUY_GRANDE";
else
document.f.Opcion.value="IMAGEN_OK";
document.f.submit();
}
</script>
</head>
<body onload="ChequearImagen()">
<table width="100%" height="100%"><tr valign="middle"><td align="center">
<table border="1" cellspacing="0" cellpadding="0"><tr><td>
<img src="../img/profiles/<%=NomFile%>" name="imagen">
</td></tr></table>
</td></tr></table>
</body>
<form name="f" method="post" action="paso2.asp">
<input type="hidden" name="NomFile" value="<%=NomFile%>">
<input type="hidden" name="Opcion">
</form>
</html>
El código anterior muestra la imagen, comprueba sus dimensiones, para este caso, se considera que la imagen válida debe ser de dimensión no superior a 120x120 pixels, esto se comprueba en la función JavaScript ChequearImagen(), puedes cambiar ese código según te interese.
Tras la comprobación se hace submit() del formulario f que aparece al final enviando los parámetros NomFile y Opcion a la página paso2.asp (si te resultara de utilidad puedes enviar también el ancho y el alto de la imagen añadiendo dos campos más al formulario y modificando la función ChequearImagen()).
2º.- El código del fichero paso2.asp podría ser el siguiente:
<%
NomFile=Request.form("NomFile")
OPCION=Request.form("Opcion")
if OPCION="IMAGEN_MUY_GRANDE" then
Código ASP para este caso
(Yo aquí borro la imagen del servidor, ya que tan grande no la quiero )
elseif OPCION="IMAGEN_OK" then
Código ASP para este caso
(Aquí yo guardo la ruta NomFile en una base de datos )
end if
%>
Así he resuelto yo este problema, si alguien encuentra una solución menos complicada que lo diga.
