您的位置:首页 > 其它

IE8/9 本地预览上传图片

2016-11-01 15:44 239 查看
本地预览的意思是,在选择图片之后先不上传到服务器,而是由一个
<img>
标签来预览本地的图片,非 IE8/9 浏览器可以从
<input type=“file”/>
中获取到图片流,然后设置到
<img src=“”>
进行显示,但 IE8/9 浏览器只能获取到本地图片的绝对路径,并且设置 src 是无效的。

解决上面问题的方式是采用 css 图片滤镜,示例代码:

<!-- 要设置图片预览区域的大小 -->
<p class="img-wrap">
<img name="prevPic" id="prevPic" src="" />
<input name="uploadImage" id="uploadImage" type="file" />
</p>

<script type="text/javascript">
$('#uploadImage').change(function (e) {
if (navigator.userAgent.indexOf('MSIE 8') >= 0 || navigator.userAgent.indexOf('MSIE 9') >= 0) {
$(this).select();
window.parent.document.body.focus();
var realpath = document.selection.createRange().text;
$(this).parent().css("filter", "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',src=\"" + realpath + "\",sizingMethod=scale)");
}
else {
var file = e.delegateTarget.files[0];
var reader = new FileReader();
var targetId = e.target.id;
reader.readAsDataURL(file);
reader.onload = function () {
var picString = reader.result;
$("#prevPic").attr({ "src": picString }).show();
};
}
});
</script>


获取
realpath
是为了解决发布 IIS 之后,出现本地图片路径变成
C:\fakepath\xxxx.jpg
的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: