javascript - 如何在IE8上兼容filereader对象
天蓬老师
天蓬老师 2017-04-11 09:21:22
[JavaScript讨论组]

如题,本人想实现一个图片上传之前的预览效果,明白可以用fileReader对象来实现,但是IE8上却不支持,请问有什么兼容性的方案吗?
目前我有两种想法,一种是检测浏览器的版本,如果版本过低的话,就提示用户升级浏览器,但这是万不得已的做法,还有一种方案就是上传图片时,一旦input[type=file]里的内容发生变化,就直接把图片传给后台,然后后台把该图片在服务器上的src地址返回给我,我把这个src插进img标签内,实现一个预览效果,但我感觉这样向后台发送请求太频繁了,用户都还没上传图片只是预览一下,我却要像后台发送请求。。
请问还有什么更好的解决方案吗?
谢谢!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
迷茫

这个问题 不是很容易 搜到吗? http://blog.csdn.net/goodnew/article/details/17762567
请学会多搜索

IE 10+ , 预览功能 用 window.URL.createObjectURL ,低版本 用IE 的滤镜

天蓬老师
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js图片上传预览</title>
    <script>
        function PreviewImage(imgFile)
        {
            var filextension=imgFile.value.substring(imgFile.value.lastIndexOf("."),imgFile.value.length);
            filextension=filextension.toLowerCase();
            if ((filextension!='.jpg')&&(filextension!='.gif')&&(filextension!='.jpeg')&&(filextension!='.png')&&(filextension!='.bmp'))
            {
                alert("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传,谢谢 !");
                imgFile.focus();
            }
            else
            {
                var path;
                if(document.all)//IE
                {
                    imgFile.select();
                    path = document.selection.createRange().text;
                    document.getElementById("imgPreview").innerHTML="";
                    document.getElementById("imgPreview").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")";//使用滤镜效果
                }
                else//FF
                {
                    path=window.URL.createObjectURL(imgFile.files[0]);// FF 7.0以上
                    //path = imgFile.files[0].getAsDataURL();// FF 3.0
                    document.getElementById("imgPreview").innerHTML = "<img id='img1' width='120px' height='100px' src='"+path+"'/>";
                    //document.getElementById("img1").src = path;
                }
            }
        }
    </script>
</head>
<body>
<input type="file" onchange='PreviewImage(this)' />
<br />
<p id="imgPreview" style='width:120px; height:100px;'>
    <img id="img1" src="" width="120" height="100" />
</p>
</body>
</html> 
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号