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 面向对象编程
Oct 28 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
JavaScript实现多栏目切换效果
Dec 12 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
微信小程序换肤功能实现代码(思路详解)
Aug 25 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
ftp类(example.php)
2006/10/09 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python语言描述随机梯度下降法
2018/01/04 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
情侣吵架检讨书
2014/02/05 职场文书
保护环境倡议书100字
2014/05/19 职场文书
初中作文评语集锦
2014/12/25 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
欠款起诉书范文
2015/05/19 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
Javascript之datagrid查询详解
2021/09/15 Javascript
进行数据处理的6个 Python 代码块分享
2022/04/06 Python