前端实现图片的上传预览功能

2018-05-17  本文已影响17人  哼_

最近工作用到好几处图片的上传预览,从别处扒了代码,自己又修改了一下,直接上代码:

<div class="divider" style="border:1px solid #ccc;width:430px;height:200px;text-indent:0;text-align: center;">
    <img src="" alt="" srcset="" id="new_img2" style="width:auto;height:auto;max-width: 100%;max-height: 100%;">
</div>       
  <input id="testFileInput2" type="file" multiple="false" name="litpic" />
multiple 表示可不可以接收多个文件
img的css样式可以帮助实现图片的等比例缩放,外框多大,图片就会缩放
<script>
var new_file2 = document.querySelector('#testFileInput2'),
            new_img2 = document.querySelector('#new_img2');
            
        new_file2.addEventListener('change', function () {
          var file = this.files[0],
            size = file.size,
            extStart = file.name.lastIndexOf('.'),
            ext = file.name.substring(extStart, file.name.length).toUpperCase();
          maxSize = Math.pow(3, 20);
          if (size > 3*1024*1024 || size <= 0) {
            alert('图片太大了')
          } else {
            var reader = new FileReader();
            reader.addEventListener("load", function () {
              new_img2.src = reader.result;
            }, false);
            reader.readAsDataURL(file);
          }
      
        }, false);
</script>

效果图


image.png

实现预览功能,如果要加上限制,显示图片格式,jpg或者png,其他格式的不可以
就在else前面再加一层判断

      new_file2.addEventListener('change', function () {
          var file = this.files[0],
            size = file.size,
            extStart = file.name.lastIndexOf('.'),
            ext = file.name.substring(extStart, file.name.length).toUpperCase();// 转大写
            console.log(ext)
            // maxSize = Math.pow(3, 20);
          if (size > 3*1024*1024 || size <= 0) {
            alert('图片太大了');
            return false;
          }
          if (ext !== '.PNG') {
            alert('图片格式必须是png格式');
            return false;
          }else {
            var reader = new FileReader();
            reader.addEventListener("load", function () {
              new_img2.src = reader.result;
            }, false);
            reader.readAsDataURL(file);
          }
      
        }, false);

这边只限制了png格式,只可以png格式上传

上一篇下一篇

猜你喜欢

热点阅读