/* * *时间:2015年12月30日 *参数说明: img:图片id;width:预览宽度;height:预览高度;imgtype:支持文件类型;callback:选择文件显示图片后回调方法; *使用方法:
$("#up").uploadpreview({ img: "imgpr", width: 120, height: 120, imgtype: ["gif", "jpeg", "jpg", "bmp", "png"], callback: function () { }}); */ jquery.fn.extend({ uploadpreview: function(opts) { var _self = this, _this = $(this); opts = jquery.extend({ img: "imgpr", width: 100, height: 100, //imgtype: ["gif", "jpeg", "jpg", "bmp", "png", "swf"], imgtype: ["pdf"], 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 && $.browser.msie) { try { // ie 高版本 $("#" + opts.img).attr('src', _self.getobjecturl(this.files[0])) } catch (e) { // $(this).show(); //隐藏的file先显示出来 否则不能上传,ie下兼容性问题 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' }); try { div.filters.item("dximagetransform.microsoft.alphaimageloader").src = src // 有些浏览器出于安全,没有访问本地文件的权限,这里会报错 } catch (e) { // 兼容 ie 低版本 try { div.filters.item("dximagetransform.microsoft.alphaimageloader").src = _this.val(); } catch (e) { // 浏览器安全问题 // ie兼容模式下 需要 把 显示才能读取本地文件 alert("您的浏览器不支持图片预览,您可以把该网站添加到浏览器信任列表,或者升级浏览器到最新版本。"); } } } } else { // 非ie 浏览器 $("#" + opts.img).attr('src', _self.getobjecturl(this.files[0])) } opts.callback() } }) } });