ie8 pdf转html5,【前端】如何在IE8上兼容filereader对象

如题,本人想实现一个图片上传之前的预览效果,明白可以用fileReader对象来实现,但是IE8上却不支持,请问有什么兼容性的方案吗?

目前我有两种想法,一种是检测浏览器的版本,如果版本过低的话,就提示用户升级浏览器,但这是万不得已的做法,还有一种方案就是上传图片时,一旦input[type=file]里的内容发生变化,就直接把图片传给后台,然后后台把该图片在服务器上的src地址返回给我,我把这个src插进img标签内,实现一个预览效果,但我感觉这样向后台发送请求太频繁了,用户都还没上传图片只是预览一下,我却要像后台发送请求。。

请问还有什么更好的解决方案吗?

谢谢!

回答

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

js图片上传预览

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 = "%22+path+%22";

//document.getElementById("img1").src = path;

}

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值