js 实现图片上传预览效果(支持多张预览)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013299635/article/details/82797790

一、效果图:

二、源码:

<!DOCTYPE html>
<html>
<head>
<title>HTML5上传图片预览</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://www.codefans.net/ajaxjs/jquery-1.6.2.min.js"></script>
<style>
  #imgList{
    list-style:none;
    overflow:hidden;
    clear:both;
  }
  #imgList li{
    float:left;
    width:120px;height:120px;margin:10px 10px 0 0;
    overflow:hidden;
    border-radius:4px;
    background-color:pink;
  }
  #imgList li img{
    width:100%;
  }
  .input-file-box{
    display: inline-block;
    position: relative;
    padding: 3px 5px;
    overflow: hidden;
    color:#fff;
    background-color: #ccc;
  }
  .file-input{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
      left: 0;
      outline: none;
      background-color: transparent;
      filter:alpha(opacity=0);
    -moz-opacity:0;
    -khtml-opacity: 0;
    opacity: 0;
  }
</style>
</head>
<body>
<h3>请选择图片文件:JPG/GIF</h3>
<form name="form0" id="form0" >
  <!-- 这里特别说一下这个 multiple="multiple" 添加上这个之后可以一次选择多个文件进行上传,是 html5 的新属性-->
  <!-- <input type="file" name="file0" id="file0" multiple="multiple" /><br> -->
  <div class="input-file-box">
    <input type="file" class="file-input"  id="file0" multiple="multiple" />
    上传文件
  </div>
  <ul id="imgList">
    <li><img src="" alt=""></li>
    <li><img src="" alt=""></li>
  </ul>
</form>
<script>  
$("#file0").change(function(){
  // this.files[0]代表的是选择的文件资源的第一个,因为上面写了 multiple="multiple" 就表示上传文件可能不止一个
  console.log(this.files)
  var arr = [];
  for(var val of this.files){
    var imgUrl = getObjectURL(val) ;
    if (imgUrl) {
      // 在这里修改图片的地址属性
      arr.push('<li><img src="'+imgUrl+'"/></li>')
    }
    $('#imgList').html(arr.join(''))
  }
}) ;
//建立一個可存取到該file的url
function getObjectURL(file) {
  var url = null ; 
  // 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已
  if (window.createObjectURL!=undefined) { // basic
    url = window.createObjectURL(file) ;
  } else if (window.URL!=undefined) { // mozilla(firefox)
    url = window.URL.createObjectURL(file) ;
  } else if (window.webkitURL!=undefined) { // webkit or chrome
    url = window.webkitURL.createObjectURL(file) ;
  }
  return url ;
}
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/u013299635/article/details/82797790