html上传图片预览,jquery实现
来源:互联网 发布:编程 编辑:程序博客网 时间:2024/05/16 05:43
想必大家在做图片上传时大部分都会在图片没有上传之前先进行本地预览,事情说起来简单,但是由于各大浏览器都有各自安全机制,需要实现图片预览就变得有点小麻烦,本文便是介绍笔者利用jquery实现在不同浏览器在图片上传时进行预览的jquery插件。现在分享给大家参考,如有任何改进或建议请一定要为笔者指出。(插件使用需要引入jquery)
js文件jqueryExtends.js
$.fn.extend({/** * 图片上传本地预览 * 参数说明: * imgId:image节点对象(必填) * imgType:图片格式限制数组(可选) * callBack:回调函数(可选) * message:图片格式错误时是否弹出消息(可选boolean) */imgPreview:function(imgId,imgType,callBack,message){var url = $(this).val();var opts = {imgType:["jpg","jpeg","gif","png","bmp"],message:function(statu){if(statu){alert("您选择的图片有误,仅支持" + this.imgType.join("、") + "图片格式上传!");}},callBack:function(data){}};//如果省略了参数,则进行参数转换if($.isFunction(imgType)){callBack = imgType;imgType = opts.imgType;}else if($.type(imgType) === "boolean"){message = imgType;imgType = opts.imgType;callBack = opts.callBack();}if($.type(callBack) === "boolean"){message = callBack;callBack = opts.callBack();}if(message === undefined){message = true;}//合并对象opts = $.extend(opts,{"imgType":imgType,"callBack":callBack});//图片格式验证if (!RegExp("\.(" + opts.imgType.join("|").toLowerCase() + ")$", "i").test(url.toLowerCase())) {//执行回调函数 opts.callBack(false); //清空file this.defaultValue = ""; //消息提示 opts.message(message); return false; }var img = $("#" + imgId);//IE下if($.browser.msie){//使用滤镜this.select(); url = document.selection.createRange().text;//创建一个div设置背景作为图片预览var newPreview = document.createElement("div");newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; newPreview.style.width = img.width();newPreview.style.height = img.height();//使用div标签替换img标签img.replaceWith(newPreview);//使用图片newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = url;//other}else{if(this[0].files){var file = this[0].files[0];if (window.URL != undefined) { url = window.URL.createObjectURL(file); }else if(window.webkitURL != undefined){ url = window.webkitURL.createObjectURL(file); }} img.attr("src",url);}//执行回调函数opts.callBack(true);return true;}});
使用方法
<!DOCTYPE html><html><head><meta charset="utf-8" /><script type="text/javascript" src="js/jquery-1.8.3.js" ></script><script type="text/javascript" src="js/jqueryExtends.js" ></script><title></title></head><script>function imgPreview(file){//调用插件$(file).imgPreview("img");}</script><body><center><div><img src="" id = "img" width="150" height="200"/></div><input type="file" style="width: 150px;" onchange="imgPreview(this)"/></center></body></html>简单粗暴有木有,本文例子只使用了一个参数,其它参数的使用,大家可自行尝试。
0 0
- html上传图片预览,jquery实现
- jQuery 实现 图片上传预览
- jquery 实现 图片上传 预览
- jquery实现图片上传预览
- jquery 实现 图片上传 预览
- HTML实现图片上传前预览
- jquery实现图片上传时预览
- jquery实现图片上传前的预览
- 使用JQuery上传图片 实现预览
- jquery实现上传图片的预览
- 使用JQuery上传图片 实现预览
- jquery实现上传图片本地预览效果
- jquery+js实现图片上传及时预览
- html上传图片预览
- html上传图片预览
- Jquery 上传图片预览
- 实现图片上传预览
- 上传图片实现预览
- 给cocos2d-x添加滤镜功能
- Hadoop备忘:Reduce阶段Iterable<VALUEIN> values中的每个值都共享一个对象
- Linux 中的零拷贝技术
- 删除(用户层)----表层
- C++Builder 2010 生产的EXE软件在没由安装C++Builder 2010的电脑上运行的方法
- html上传图片预览,jquery实现
- C++ _类模板
- JSON字符串转数组
- 客户端窗口UI管理
- 【Halcon】图像BYTE数据生成 Mat 格式和 Hobject 格式
- UI练习
- TCP/IP+BIO
- 卷积神经网络Convolutional Neural Network (CNN)
- 查询(用户层)----表层