jak wyświetlić podgląd obrazu przed przesłaniem go w różnych przeglądarkach

Chcę wyświetlić podgląd obrazu przed przesłaniem. Znalazłem częściowe rozwiązanie, które działa dla ie6 i firefox, a havent jeszcze przetestował go w ie7 lub ie8. Ale chcę rozwiązanie, które działa również w safari, tj. 7 i ie8. Oto rozwiązanie uzyskane dzięki połączeniu rozwiązania ie6 i firefox:

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");
}
}
}

Część getAsDataURL () działa w firefox, a część „src = what.value” działa w ie6, ale co będzie działać w safari i czy „src = what.value” działa również w ie7 i ie8? Jeśli nie, czy istnieje rozwiązanie, które również tam działa? Będę szczęśliwy, jeśli mogę sprawić, aby podgląd obrazu działał w 5 lub 6 przeglądarkach. Jeśli nie, to czy jedyną opcją jest posiadanie dwóch formularzy z częścią do przesyłania obrazów w innym formularzu?

questionAnswers(5)

yourAnswerToTheQuestion