Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/01/2007, 05:25
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Problema Previsualizacion de Imagenes

Hola:

En vez de mostrar en un tag img se podría mostrar en un iframe

La idea es cambiar el action hacia un script que visualice la imagen, enviar el formulario a un iframe y luego volver a cambiar el action al original... el script php que preparé es el siguiente:

Código:
<?
$Ok = isset($_FILES["f"]);

$url = ($Ok) ? $_FILES["f"]["tmp_name"] : "../postales/Comic/erotico029.gif";
$tipo = ($Ok) ? $_FILES["f"]["type"] : "image/gif";
 
$contenido = fread(fopen($url, "rb"), filesize($url));
$tam = filesize($url);
$imagen = imagecreatefromstring(file_get_contents($url));
$ancho = imagesx($imagen);
$alto = imagesy($imagen);
imagedestroy($imagen);

/*
$datos = explode("/", $PHP_SELF);
$yo = $datos[count($datos) - 1];

if ($yo == "prever.php")
echo "location: $PHP_SELF?ancho=$ancho&alto=$alto&tam=$tam";
*/
header("Content-type: $tipo");
echo $contenido;
?>
En este caso el campo file debe tener el nombre "f"... y el ejemplo (muy básico) sería:

Código:
<html>
	<head>
		<title>
			recepción
		</title>
		<script type="text/javascript">
function prever(f) {
 tempaction = f.form.action;
 temptarget = f.form.target;
 f.form.action = "prever.php";
 f.form.target = "nuevo";
 v = window.open("", "nuevo", "width=100,height=100");
 f.form.submit();
 document.images.src = "prever.php";
 v.close();
 f.form.action = tempaction;
 f.form.target = temptarget;
 
}

function dimensionar(vp) {
datos = window.frames.nuevo.location.href;

//alert(window.frames.nuevo.scrollbars);
}

		</script>
	</head>
	<body >
<form action="receptor.php" method="post" target="_blank" enctype="multipart/form-data" name="formu">
<input type="file" name="f" />
<input type="text" name="dato" value="Introducir dato" />
<button type="button" onclick="prever(this)">prever</button>
<button type="submit">enviar</button>
</form>
<iframe id="vistaPrevia" name="nuevo" src="prever.php" onload="dimensionar(this)"/></iframe>
</body>
</html>
En el probador: Probador de scripts se puede probar...

Lo malo es que habría que rebuscarselas para obtener datos como las dimensiones y el tamaño...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo