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 相关文章推荐
初探jquery——表单应用范例
Feb 20 Javascript
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
Javascript 函数对象的多重身份
Jun 28 Javascript
一些常用的JavaScript函数(json)附详细说明
May 25 Javascript
node.js中的Socket.IO使用实例
Nov 04 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
详解vue mixins和extends的巧妙用法
Dec 20 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
Feb 05 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 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中用foreach来操作数组的代码
2011/07/17 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
python设置检查点简单实现代码
2014/07/01 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
python3个性签名设计实现代码
2018/06/19 Python
anaconda如何查看并管理python环境
2019/07/05 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
经典婚礼主持开场白
2014/03/13 职场文书
班组长竞聘书
2014/03/31 职场文书
公司捐书倡议书
2015/04/27 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL