欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery实现多张图片上传预览(不经过后端处理)

程序员文章站 2022-10-10 15:41:08
效果图: 图(1) 图(2) 代码如下: &l...

效果图:

jQuery实现多张图片上传预览(不经过后端处理)

图(1)

jQuery实现多张图片上传预览(不经过后端处理)

图(2)

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jquery图片上传预览(不经过后端处理)</title>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<div>
 <img class="imgpr"/>
 <input type="file" class="up" />
</div>
<div>
 <img class="imgpr"/>
 <input type="file" class="up" />
</div>
<script>
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
      }
      //高版本jquey使用 if ($.support.leadingwhitespace)
      if ($.support.leadingwhitespace) { //低版本jquery中使用$.browser.msie

       console.log(_self.getobjecturl(this.files[0]));
       try {
        _this.parent('div').find("." + opts.img).attr('src', _self.getobjecturl(this.files[0]));
       } catch (e) {
        var src = "";
        var obj = _this.parent('div').find("." + 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 {
       _this.parent('div').find("." + opts.img).attr('src', _self.getobjecturl(this.files[0]))
      }
      opts.callback()
     }
    })
   }
  });
  $(".up").click(function(){
   $(this).uploadpreview({
    img: "imgpr"
   });
  })

</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!