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 相关文章推荐
更正确的asp冒泡排序
May 24 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
javascript时间差插件分享
Jul 18 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
js实现录音上传功能
Nov 22 Javascript
Vue filter 过滤当前时间 实现实时更新效果
Dec 20 Javascript
js删除对象中的某一个字段的方法实现
Jan 11 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+MySQL 制作简单的留言本
2009/11/02 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
python分割文件的常用方法
2014/11/01 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python实现控制台输出颜色
2021/03/02 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
司机岗位职责
2013/11/15 职场文书
通信工程毕业生求职信
2013/11/16 职场文书
物流管理专业自荐信
2014/06/23 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
迁户口计划生育证明
2014/10/19 职场文书
安全员岗位职责
2015/02/10 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年保卫科工作总结
2015/05/14 职场文书