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隐藏控件的方法
Sep 21 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
Jquery 例外被抛出且未被接住原因介绍
Sep 04 Javascript
js改变Iframe中Src的方法
May 05 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
JS简单测试循环运行时间的方法
Sep 04 Javascript
node.js操作mysql简单实例
May 25 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
php 生成饼图 三维饼图
2009/09/28 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
实例详解Python模块decimal
2019/06/26 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
物业工作计划书
2014/01/10 职场文书
上班打牌检讨书
2014/02/07 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
生物学专业求职信
2014/07/23 职场文书
银行业务授权委托书
2014/10/10 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
爱心助学感谢信
2015/01/21 职场文书
春秋淹城导游词
2015/02/11 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫