IE下上传图片时预览图片(1.IE7/IE8测试通过; 2.能根据比例缩放图片 )
2011-10-30 21:16
288 查看
<!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> <title></title> <script type="text/javascript"> function ShowImage(path, id) { //思路: //1.当上传控件路径变化时, 先将图片所在div隐藏; //2.将上传控件的值传给图片div的滤镜路径; //3.将图片div的sizingMethod设置为'image'——目的是取得图片的原始大小。因为此状态下与图片的原始大小是一致的。 //4.过一小会儿获取div的宽高——之所以要过一会儿, 原因是图片显示出来需要时间。 var picid = document.getElementById(id); picid.style.visibility = "hidden"; //处理前是原图,先将其隐藏, picid.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path; picid.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image"; setTimeout(function () { setImg(picid); }, 100); //过一小会获取div的宽高. } function setImg(obj) { //5.如果取得的图片比预定义的宽高小, 原图显示就好了。 //6.否则如果图片太大, 将图片的sizingMethod改成"scale", 这样图片可以缩放的形式显示; //7.宽比例=预定义宽/实际宽, 高比例=预定义高/实际高; //8.取其中一个较小的作为显示时的显示比例; //9.计算得到显示时的实际宽高, 并赋给图片div对应的属性; var width_img; var height_img; obj.style.visibility = "visible"; width_img=obj.offsetWidth; height_img=obj.offsetHeight; var width=274; //预定义宽 var height=100; //预定义高 var ratW; //宽的缩小比例 var ratH; //高的缩小比例 var rat; //实际使用的缩小比例 if(width_img<=width && height_img<=height) { //如果比预定义的宽高小,原图显示。 obj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod ="image"; return; }else{ //如果大的话,要把 sizingMethod改成scale 如果属性是image, 不管怎么改div的宽高,都不起作用 obj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod ="scale"; } ratH=height/height_img; ratW=width/width_img; if(ratH<ratW) //选择最小的作为实际的缩小比例 rat=ratH; else rat=ratW; width_img=width_img * rat; height_img=height_img * rat; obj.style.width=width_img; obj.style.height=height_img; } </script> </head> <body> <h2>切记:</h2> <ol> <li>此法只在IE下有效, 请在IE下测试</li> <li>IE下, 必须设置"工具","Internet选项",选项卡"安全"——"可信站点",将你测试的站点添加进去才行.否则会出"系统找不到指定的资源"的 (特别是ie8, 很多人localhost测试没有问题, 上传到服务器有问题就是因为服务器没有添加为信任站点) .</li> </ol> <input type="file" name="pic1" size="10" onchange="ShowImage(this.value,'showpic1')" /> <div id="showpic1" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);width: 274px; height: 100px"> </div> </body> </html>
相关文章推荐
- Jquery 上传图片预览,等比例缩放
- ASP.NET上传图片时,产生预览(测试通过)
- IE 中上传前按比例预览图片
- input-file的本地图片预览+等比例缩放-兼容IE8、火狐
- 多图片上传+图片预览,兼容所有浏览器 IE5/IE6/IE7/IE8/IE9/Chrome/Safari/Firefox/Opera/
- input-file的本地图片预览+等比例缩放-兼容IE8、火狐
- 兼容IE8、火狐的本地图片预览+等比例缩放
- input-file的本地图片预览+等比例缩放-兼容IE8、火狐
- 【转】input-file的本地图片预览+等比例缩放-兼容IE8、火狐
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- 多图片上传+图片预览,兼容所有浏览器 IE5/IE6/IE7/IE8/IE9/Chrome/Safari/Firefox/Opera/
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- 兼容IE、新版Chrome、Firefox,实现本地图片等比例缩放预览
- IE 图片上传并预览
- 兼容IE,FF的上传图片预览
- 支持Android iOS,firefox(其它未测)的图片上传客户端预览、缩放、裁切。
- 通过Canvas及File API缩放并上传图片完整示例
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
- IE8 用滤镜实现上传预览图片,解决C:\fakepath\*.jpg问题,获取本地路径
- Android图片上传,可以选择多张图片,缩放预览,拍照上传等