Agrego: Este otro camino funciona sin problemas (aunque sólo localmente) en Firefox, Safari y Chrome:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<script>
function getBase64Image(v) {
var img=document.body.appendChild(document.createElement('img')).src=v;
img.onload=function(){
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
document.getElementById('log').innerHTML='<img src="'+dataURL+'" />';
}
}
</script>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<label for="file"></label>
<input type="file" name="file" id="file" onchange="getBase64Image(this.value)" />
</form>
<div id="log"></div>
</body>
</html>