jquery实现图片上传之前预览的方法


Posted in Javascript onJuly 11, 2015

本文实例讲述了jquery实现图片上传之前预览的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery-1.8.1.min.js" type="text/javascript"></script>
<script>
/*
*参数说明: Img:图片ID;Width:预览宽度;Height:预览高度;ImgType:支持文件类型;Callback:选择文件显示图片后回调方法;
*使用方法: 
<div>
<img id="ImgPr" width="120" height="120" /></div>
<input type="file" id="up" />
把需要进行预览的IMG标签外 套一个DIV 然后给上传控件ID给予uploadPreview事件
$("#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"],
      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()
      }
    })
  }
});
$(function () {
$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120 });
});
</script>
</head>
<body>
<div style="width:500px;margin:0px auto;"><h2>图片上传预览演示</h2>
<div><img id="ImgPr" width="120" height="120" /></div>
<input type="file" id="up" />
</div>
</body>
</html>

希望本文所述对大家的jquery程序设计有所帮助。

Javascript 相关文章推荐
javascript 对表格的行和列都能加亮显示
Dec 26 Javascript
JavaScript去掉空格的方法集合
Dec 28 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
详解使用React进行组件库开发
Feb 06 Javascript
在小程序中使用canvas的方法示例
Sep 17 Javascript
简单使用webpack打包文件的实现
Oct 29 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
Jul 19 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 #Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 #Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 #Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 #Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 #Javascript
JavaScript模板引擎用法实例
Jul 10 #Javascript
JavaScript实现打字效果的方法
Jul 10 #Javascript
You might like
中篇:安装及配置PHP
2006/12/13 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
apache部署python程序出现503错误的解决方法
2017/07/24 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
J2EE相关知识面试题
2013/08/26 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
出国留学自荐信
2013/10/25 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
项目申请汇报材料
2014/08/16 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
文明旅游倡议书
2015/04/28 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis