现在的位置: 首页 > 综合 > 正文

IE8图片上传预览及“无效图片文件”提示解决

2013年03月11日 ⁄ 综合 ⁄ 共 1568字 ⁄ 字号 评论关闭

IE8图片上传预览及“无效图片文件”提示解决

今天换了windows7系统,默认浏览器是IE8,所有网站运行环境配置好后调试昨天写的图片上传预览,竟然弹出提示“无效图片文件”!
Google了一下发现有此问题的很多,核心原因是IE8的还是默认安全机制限制远程获取本地文件的路径,只能得到个文件名。

寻找到的解决办法是点击IE8工具项>internet选项>安全>自定义级别>将上传带上路径勾选,不过找了半天都是此方法,并且是针对beta1版本

,这个将上传带路径我始终是没找到在哪里。

就算是我找到了,如果用户和我一样的浏览器,难道让我去修改用户的浏览器设置,那我成流氓了,还是要从程序下手。

昨天写的IE7,FF3上传预览上加个函

function getValue(id){
    id.select();//该对象选取
    return document.selection.createRange().text;//返回选取项的文本内容
}
利用上面的函数将返回值在递交给以前的代码,就轻松解决了;
IE部分的完整代码为

function getValue(id){id.select();return document.selection.createRange().text;}
        var fielvalue=getValue(imgFile);
        $ID('hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod ='image';
        try{ $ID('hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=fielvalue;} 
        catch(e){w=0;h=0;return;}
        var wh={'w':$ID('hidden').offsetWidth,'h':$ID('hidden').offsetHeight};
        var bili=wh['h']/wh['w'];
        if(wh['w']>100){wh['w']=100;wh['h']=100*bili};
        $ID('hidden').style.width =wh['w'];
        $ID('hidden').style.height=wh['h'];
        $ID('hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod ='scale';
        $ID("IEview").innerHTML='<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader

(sizingMethod=\'scale\',src=\'' + fielvalue +'\');width:'+wh['w']+';height:'+wh['h']+'" src=\'\'/>';
将以上代码替换掉昨天的FF与IE下的图片上传预览else部分就OK了。

我自己用的win7系统,IE实测,用IETester0.3测试了ie7,由于IETeser IE6一打开就挂掉没有测试,由于IE部分的预览是通过IE私有滤镜达到

的目的,那么IE7、IE8好使了IE6应该不成问题。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ajaxchen_615/archive/2009/04/09/4057884.aspx

抱歉!评论已关闭.