jquery input file show image preview 预览图片

  现在html5很是流行,在不支持html5的ie系类浏览器,如何用jquery预览input file 上传的图片能,一段jquery代码轻松搞定,如有问题,大家交流!

 

function loadname(img, previewName){ var isIE = (navigator.appName=="Microsoft Internet Explorer"); var path = img.value; var ext = path.substring(path.lastIndexOf('.') + 1).toLowerCase(); if(ext == "gif" || ext == "jpeg" || ext == "jpg" || ext == "png" ) { if(isIE) { $('#'+ previewName).attr('src', path); }else{ if (img.files[0]) { var reader = new FileReader(); reader.onload = function (e) { $('#'+ previewName).attr('src', e.target.result); } reader.readAsDataURL(img.files[0]); } } }else{ incorrect file type } }

=============================================

给你的input 来个onchange事件

<input type="file" name="image" onchange("loadname(this,'previewimg')") > <img src="about:blank" name="previewimg" id="previewimg" alt="">

因为FileReader在HTML5 File API  

但是有的项目需要兼容ie8,9浏览器,以上代码不兼容ie10以下的版本,所以你需要以下代码片段

jQuery.fn.extend({     uploadPreview: function (opts) {         var _self = this,             _this = $(this);         opts = jQuery.extend({             Img: "ImgPr",             Width: 188,             Height: 186,             ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],             Callback: function () {}         }, opts || {});         _self.getObjectURL = function (file) {             var url = null;             if (window.createObjectURL != undefined) {                 url = window.createObjectURL(file)             } else if (window.URL != undefined) {                 url = window.URL.createObjectURL(file)             } else if (window.webkitURL != undefined) {                 url = window.webkitURL.createObjectURL(file)             }             return url         };         _this.change(function () {             if (this.value) {                 if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {                     alert("选择文件错误,图片类型必须是" + opts.ImgType.join(",") + "中的一种");                     this.value = "";                     return false                 }                 if ($.browser.msie) {                     try {                         $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))                     } catch (e) {                         var src = "";                         var obj = $("#" + opts.Img);                         var div = obj.parent("div")[0];                         _self.select();                         if (top != self) {                             window.parent.document.body.focus()                         } else {                             _self.blur()                         }                         src = document.selection.createRange().text;                         document.selection.empty();                         obj.hide();                         obj.parent("div").css({                             'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',                             'width': opts.Width + 'px',                             'height': opts.Height + 'px'                         });                         div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src                     }                 } else {                     $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))                 }                 opts.Callback()             }         })     } });

给你的<input type="file" name="file" id="up" >

还有的你的img标签需要在外面包一个div

<div class="userico">                    <img src="${ctx}/themes/b2b2cv2/images/default_face.jpg" width="120" height="120" id="ImgPr">       </div>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值