Ayuda con previsualizacion de imagenes...

Jetrho
01 de Septiembre del 2004
Hola a todos, tengo un pqueño problema, tengo una web en la que hay seccion de fotos. Cada usuario puede subir las fotos que quiera. Estoy renovando el script que gestiona la conexion ftp y la conexion con la bd (todo esto en PHP y Mysql). Por otra parte he introducido scripts en javascript para controlar los datos que se introducen en el formulario. La idea es que cuando un usuario selecciona una foto de su disco duro (fileupload), quiero que esta se vea previsualizada al lado. Lo que hago es que mientras no selecciona una foto hay otra (noimagen.jpg). Cuando este selcciona una, automaticamente debe cambiar noimagen.jpg por xxxxx.jpg|gif ajustando las dimensiones de alto y ancho. Ahora viene mi problema:

Mientras elaboro los script, hago trazas para ver el cambio de las variables, las hago con alert(); Cuando comprobe con las trazas que todo funcionaba a la perfeccion, quite estas, y me di cuenta de que no iba en algunos casos (aleatorios). Tras hacer pruebas, he descubierto que solo funciona al 100% manteniendo la primera traza. Me gustaria poder quitarle y que todo el proceso se realizara de forma transparente, os dejo el codigo para ver si podeis echarme un cable.

Gracias!!

PD: No os asusteis con la expresion regular, pongo tantas barras invertidas porque esta dentro de un echo en PHP.

function imagen(i,j)
{
var foto=new Image();
var source=document.forms[0].elements[i].value;
window.document[j].src=source;
foto.src=source;
alert(foto.src);
var altoa=foto.height;
alert(altoa);
var anchoa=foto.width;
alert(anchoa);
if (altoa>anchoa)
{
var cons2=altoa;
}
else
{
var cons2=anchoa;
}
alert(cons2);
var cons=110/cons2;
alert(cons);
var altob=altoa*cons;
alert(altob);
var anchob=anchoa*cons;
alert(anchob);
window.document[j].height=altob;
window.document[j].width=anchob;
var re=/^[a-z0-9\\.\\-\\_\\:\\!\\¡\\(\\)\\\ ]+\$/i
var nombre;
nombre=source;
nombre=nombre.split(\'\\\\');
nombre=nombre.reverse();
alert(nombre[0]);
if (!re.test(nombre[0]))
{
var l;
l=j+1;
alert(\'Foto \'+l+\': El nombre de archivo \\\'\'+nombre[0]+\'\\\' no es valido. Solo se admiten caracteres alfanumericos y los signos \\\ y - . Te recomiendo cambiarle el nombre.\');
window.document[j].src=\'graficos/web/noimagen.jpg\';
window.document[j].width=110;
window.document[j].height=110;
document.forms[0].elements[i].value=\'\';
document.forms[0].elements[i].focus();
return false;
}
var tamano=foto.src.size;
if (tamano>100024)
{
alert(\'No se pueden colgar fotos con tamaño superior a 100 Kb\');
document.forms[0].elements[i].value=\'\';
window.document[j].src=\'graficos/web/noimagen.jpg\';
window.document[j].width=110;
window.document[j].height=110;
}
delete foto;

}