上传图片是开发过程中经常有的需求,然而这个问题也很烦。由于这个或那个原因,服务器经常会因为这个受很大影响 ,限制文件上传大小是其中的一个解决方法,在IE6中可以在客户端直接得到图片大小,把大的文件直接干掉,在IE7中,安全级别被提高了,不能直接得到图片的大小。
但是在IE7中可以使用滤镜的功能来弥补这个问题,即经测试可以用滤镜做个中转
<!--
以下均支持IE6和IE7
-->
< script type ="text/javascript" > ...
function Preview(imgFile)
...{
document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
var obj=document.getElementById("temp")
obj.src=document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src
//obj.src=imgFile.value 不写上句直接写这句则在IE7下不行
alert(obj.fileSize)//当然这里得到的文件大小,最好还是在提交的时候来检查,因为加载图片还是需要时间的,所以不能保证一定得到,这里就简写了
}
</ script >
上传图片: < input type ="file" onchange ="javascript:Preview(this);" />< br />
< div id ="pic" style ="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);display:none" ></ div >
< img name ="temp" style ="display:none" >
< script type ="text/javascript" > ...
function Preview(imgFile)
...{
document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
var obj=document.getElementById("temp")
obj.src=document.getElementById("pic").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src
//obj.src=imgFile.value 不写上句直接写这句则在IE7下不行
alert(obj.fileSize)//当然这里得到的文件大小,最好还是在提交的时候来检查,因为加载图片还是需要时间的,所以不能保证一定得到,这里就简写了
}
</ script >
上传图片: < input type ="file" onchange ="javascript:Preview(this);" />< br />
< div id ="pic" style ="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);display:none" ></ div >
< img name ="temp" style ="display:none" >