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.net后台)
Jan 27 Javascript
jQuery处理json数据返回数组和输出的方法
Mar 11 Javascript
AngularJS中处理多个promise的方式
Feb 02 Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
Dec 21 Javascript
利用node.js实现自动生成前端项目组件的方法详解
Jul 12 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
vue模块拖拽实现示例代码
Mar 09 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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引用
2015/02/22 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
javascript Keycode对照表
2009/10/24 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
用js实现放大镜效果
2020/10/28 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
python中threading超线程用法实例分析
2015/05/16 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
python 基于wx实现音乐播放
2020/11/24 Python
python Timer 类使用介绍
2020/12/28 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
岗位安全生产责任书
2014/07/28 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
业务员岗位职责范本
2015/04/03 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
建国大业观后感
2015/06/01 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript