Quiero mostrar vista previa de la imagen antes de que sea subido. He encontrado una solución parcial que trabaja para IE6 y Firefox, y no he probado todavía en IE7 o IE8. Pero quiero una solución que funcione en safari, ie7 y ie8 también. Aquí está la solución obtenida mediante la combinación de la solución IE6 y Firefox:cómo una vista previa de una imagen antes de subida en varios navegadores
function preview(what) {
if(jQuery.browser.msie) {
document.getElementById("preview-photo").src=what.value;
return;
}
else if(jQuery.browser.safari) {
document.getElementById("preview-photo").src=what.value;
return;
}
document.getElementById("preview-photo").src=what.files[0].getAsDataURL();
// alert(jQuery("#preview-photo").height());
// alert(jQuery("#preview-photo").width());
var h = jQuery("#preview-photo").height();
var w = jQuery("#preview-photo").width();//assuming width is 68, and height is floating
if ((h > 68) || (w > 68)){
if (h > w){
jQuery("#preview-photo").css("height", "68px");
jQuery("#preview-photo").css("width", "auto");
}else {
jQuery("#preview-photo").css("width", "68px");
jQuery("#preview-photo").css("height", "auto");
}
}
}
La parte getAsDataURL() funciona en Firefox, y el "src = what.value" parte funciona en IE6, pero lo que sería trabajar en Safari, y ¿funciona "src = what.value" en ie7 y ie8 también? Si no, ¿hay alguna solución que también funcione allí? Estaré contento si puedo hacer que la vista previa de la imagen funcione en 5 o 6 navegadores. Si no es así, ¿entonces la única opción es tener dos formularios con carga de imagen de otra forma?
No es cierto. La nueva API de archivos HTML5 sirve exactamente para este propósito. Se protege totalmente la ruta del archivo, y usted tiene que leer todos los datos a través de un FileReader –
Nota esta respuesta es de 3 años de edad. – Ash