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