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 相关文章推荐
js 函数的副作用分析
Aug 23 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
使用jQuery制作浮动工具栏的实例分享
May 13 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
Vue事件修饰符native、self示例详解
Jul 09 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
es6函数之箭头函数用法实例详解
Apr 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
PHP学习笔记之二
2011/01/17 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python线程池如何使用
2020/05/28 Python
为什么是 Python -m
2020/06/19 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
耐克中国官方商城:Nike中国
2018/10/18 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
工厂厂长的职责
2013/12/12 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
鲁迅故居导游词
2015/02/05 职场文书
数学教师个人总结
2015/02/06 职场文书
美容院员工规章制度
2015/08/05 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL