天天看点

js读取input[type=file]图片,并实时预览

前言:

之前为了实现

input[type=file]

选择图片后实时展示图片,是把图片上传后,后端返回路径再显示

感觉多此一举,这样的方法实在太笨了,也太慢了,也就摸索出另一种方法 

FileReader

帮助文档

#html

<input type="file" id="file"/>
<img src="" id="img"/>
<p id="text"></p>
           

#js

<script>
    document.querySelector('#file').onchange = function (){
      if(this.files.length){
        let file = this.files[0];
        let reader = new FileReader();
        //新建 FileReader 对象
        reader.onload = function(){
          // 当 FileReader 读取文件时候,读取的结果会放在 FileReader.result 属性中
          document.querySelector('#img').src = this.result;
          document.querySelector('#text').innerHTML = this.result;
        };
        // 设置以什么方式读取文件,这里以base64方式
        reader.readAsDataURL(file);
       }
    }
</script>