zoukankan      html  css  js  c++  java
  • 图片上传时预览插件

    html代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    
      <script src="uploadView.js" type="text/javascript"></script>
      <script>
        window.onload = function () { 
          new uploadPreview({ UpBtn: "photo", DivShow: "imgdiv", ImgShow: "imgShow" });
        }
      </script>
    </head>
    <body>
    <!-- 上传的注意事项
    1,需要将文件上传的组件放置在表单里
    2,提交方式必须为post
    3,表单类型必须为复合表单数据(包含了文件类型,还可以是普通的数据)
    4,file表单类型的标签必须包含name属性
     -->
    
    <div id="imgdiv"><img id="imgShow" width="200" src="404.jpg"/></div>
    
    <form action="FileUpload" method="post" enctype="multipart/form-data">
    
        头像:<input type="file" id="photo" name="photo" value=""/>
        
        
    <br>
    <input type="submit"  id="btn" value="上传"/>
    </form>
    
    
    <script type="text/javascript">
        document.getElementById("btn").onclick=function(){
            alert(document.getElementById("photo").value);
        }
    </script>
    </body>
    </html>

    插件代码:

    /*
    *发布时间:2014年12月12日
    *插件介绍:图片上传本地预览插件 兼容浏览器(IE 谷歌 火狐) 不支持safari 当然如果是使用这些内核的浏览器基本都兼容
    *使用方法:
    *界面构造(IMG标签外必须拥有DIV 而且必须给予DIV控件ID)
    * <div id="imgdiv"><img id="imgShow" width="120" height="120" /></div>
    * <input type="file" id="up_img" />
    *调用代码:
    * new uploadPreview({ UpBtn: "up_img", DivShow: "imgdiv", ImgShow: "imgShow" });
    *参数说明:
    *UpBtn:选择文件控件ID;
    *DivShow:DIV控件ID;
    *ImgShow:图片控件ID;
    *Width:预览宽度;
    *Height:预览高度;
    *ImgType:支持文件类型 格式:["jpg","png"];
    *callback:选择文件后回调方法;
    *版本:v1.4
    更新内容如下:
    1.修复回调.
    *版本:v1.3
    更新内容如下:
    1.修复多层级框架获取路径BUG.
    2.去除对jquery插件的依赖.
    */
    /*
    *work:图片预览插件
    */
    var uploadPreview = function(setting) {
      /*
      *work:this(当前对象)
      */
      var _self = this;
      /*
      *work:判断为null或者空值
      */
      _self.IsNull = function(value) {
        if (typeof (value) == "function") { return false; }
        if (value == undefined || value == null || value == "" || value.length == 0) {
          return true;
        }
        return false;
      }
      /*
      *work:默认配置
      */
      _self.DefautlSetting = {
        UpBtn: "",
        DivShow: "",
        ImgShow: "",
        Width: 100,
        Height: 100,
        ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
        ErrMsg: "选择文件错误,图片类型必须是(gif,jpeg,jpg,bmp,png)中的一种",
        callback: function() { }
      };
      /*
      *work:读取配置
      */
      _self.Setting = {
        UpBtn: _self.IsNull(setting.UpBtn) ? _self.DefautlSetting.UpBtn : setting.UpBtn,
        DivShow: _self.IsNull(setting.DivShow) ? _self.DefautlSetting.DivShow : setting.DivShow,
        ImgShow: _self.IsNull(setting.ImgShow) ? _self.DefautlSetting.ImgShow : setting.ImgShow,
        Width: _self.IsNull(setting.Width) ? _self.DefautlSetting.Width : setting.Width,
        Height: _self.IsNull(setting.Height) ? _self.DefautlSetting.Height : setting.Height,
        ImgType: _self.IsNull(setting.ImgType) ? _self.DefautlSetting.ImgType : setting.ImgType,
        ErrMsg: _self.IsNull(setting.ErrMsg) ? _self.DefautlSetting.ErrMsg : setting.ErrMsg,
        callback: _self.IsNull(setting.callback) ? _self.DefautlSetting.callback : setting.callback
      };
      /*
      *work:获取文本控件URL
      */
      _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;
      }
      /*
      *work:绑定事件
      */
      _self.Bind = function() {
        document.getElementById(_self.Setting.UpBtn).onchange = function() {
          if (this.value) {
            if (!RegExp(".(" + _self.Setting.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
              alert(_self.Setting.ErrMsg);
              this.value = "";
              return false;
            }
            if (navigator.userAgent.indexOf("MSIE") > -1) {
              try {
                document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
              } catch (e) {
                var div = document.getElementById(_self.Setting.DivShow);
                this.select();
                top.parent.document.body.focus();
                var src = document.selection.createRange().text;
                document.selection.empty();
                document.getElementById(_self.Setting.ImgShow).style.display = "none";
                div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                div.style.width = _self.Setting.Width + "px";
                div.style.height = _self.Setting.Height + "px";
                div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
              }
            } else {
              document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
            }
            _self.Setting.callback();
          }
        }
      }
      /*
      *work:执行绑定事件
      */
      _self.Bind();
    }
  • 相关阅读:
    HDU 3389 Game (阶梯博弈)
    国内操作系统OS分析(上)
    激光雷达应用技术分析
    构建深度学习框架运行平台
    GitHub上YOLOv5开源代码的训练数据定义
    GitHub上开源的YOLOv5
    深度学习调用TensorFlow、PyTorch等框架
    CUDA C 纹理提取Texture Fetching
    CPU,GPU,GPGPU
    毫米波RADAR与LIDAR探秘
  • 原文地址:https://www.cnblogs.com/nijunyang/p/7359638.html
Copyright © 2011-2022 走看看