好象没作这个功能了,以为还能象以前那么简单,结果发现IE7不鸟我的程序,要预览图片没出来,一查,曰安全第一,不给你看本地图片。郁闷的解决办法,原来ms为了推进自己的插件啊,必须用插件才能作到预览效果,好吧用了,结果FF娘傲娇的拒绝了ms的插件。不急,判断一下,不支持插件的浏览器还是用原来的办法吧,结果FF娘也提出了自己的安全条例,Value不给你看本地路径
最后倒腾了一上午才作出既可以讨好IE7,又可以安慰FF娘的一小段程序来。IE7和FF3.6.13下测试通过。(ps:在看FF娘版本时,居然发现她正在偷偷的下载自己的新版本,这年头流行这种表面冷淡背后偷偷准备惊喜的傲娇行动??)
<script language="javascript" type="text/javascript">
function onImageChange(o, vid)
{
var v = document.getElementById(vid);
v.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";
if(v.filters)
{
v.style.width = 100;
v.style.height = 100;
v.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = o.value;
} else
{
var img = window.document.getElementById(vid + "_ViewFFImg");
if(!img)
{
img = new Image();
img.width = 100
img.height = 100
img.id = vid + "_ViewFFImg";
v.appendChild(img, null);
}
if(o.files)
{
img.src = o.files.item(0).getAsDataURL();
} else {
alert("这还不行??混蛋啊!我不要这个功能了,可行?,IE7和FF娘都是笨蛋!!");
}
}
}
</script>
缩略图:<input type="file" οnchange="javascript:onImageChange(this, 'oViewImage');" />
<div id="oViewImage"></div>
哦,预览尺寸我固定成了100x100了,还有,获取图片真正的尺寸冒似也有一定的麻烦,反正直接img.width在FF下读到的是0。不过,反正我现在用不着用客户端读取本地图片尺寸,就将就着用吧。