zoukankan      html  css  js  c++  java
  • HTML5 之 FileReader(图片上传)

     

     

    1、FileReader接口的方法

      FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。

      FileReader接口的方法:

        1. readAsBinaryString(file) : 将文件读取为二进制编码,

        2. readAsText(file,[encoding]) : 将文件读取为文本,

        3. readAsDataURL(file) : 将文件读取为DataURL,

        4. abort(none) : 中断读取操作.

    2、FileReader接口事件

      FileReader接口包含了一套完整的事件模型,用于捕获读取文件时的状态。

        1. onabort : 中断,

        2. onerror : 出错,

        3. onloadstart : 开始,

        4. onprogress : 正在读取,

        5. onload : 读取成功,

        6. onloadend : 读取完成,无论成功失败(无论成功失败)。

    3、FileReader接口的使用

    复制代码
     1 <script type="text/javascript">  
     2 var result=document.getElementById("result");  
     3 var file=document.getElementById("file");  
     4   
     5 //判断浏览器是否支持FileReader接口  
     6 if(typeof FileReader == 'undefined'){  
     7     result.InnerHTML="<p>你的浏览器不支持FileReader接口!</p>";  
     8     //使选择控件不可操作  
     9     file.setAttribute("disabled","disabled");  
    10 }  
    11   
    12 function readAsDataURL(){  
    13     //检验是否为图像文件  
    14     var file = document.getElementById("file").files[0];  
    15     if(!/image/w+/.test(file.type)){  
    16         alert("看清楚,这个需要图片!");  
    17         return false;  
    18     }  
    19     var reader = new FileReader();  
    20     //将文件以Data URL形式读入页面  
    21     reader.readAsDataURL(file);  
    22     reader.onload=function(e){  
    23         var result=document.getElementById("result");  
    24         //显示文件  
    25         result.innerHTML='<img src="' + e.target.result +'" alt="" />';  
    26     }  
    27 }  
    28   
    29 function readAsBinaryString(){  
    30     var file = document.getElementById("file").files[0];  
    31     var reader = new FileReader();  
    32     //将文件以二进制形式读入页面  
    33     reader.readAsBinaryString(file);  
    34     reader.onload=function(f){  
    35         var result=document.getElementById("result");  
    36         //显示文件  
    37         result.innerHTML=this.result;  
    38     }  
    39 }  
    40   
    41 function readAsText(){  
    42     var file = document.getElementById("file").files[0];  
    43     var reader = new FileReader();  
    44     //将文件以文本形式读入页面  
    45     reader.readAsText(file);  
    46     reader.onload=function(f){  
    47         var result=document.getElementById("result");  
    48         //显示文件  
    49         result.innerHTML=this.result;  
    50     }  
    51 }  
    52 </script>  
    53 <p>  
    54     <label>请选择一个文件:</label>  
    55     <input type="file" id="file" />  
    56     <input type="button" value="读取图像" onclick="readAsDataURL()" />  
    57     <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />  
    58     <input type="button" value="读取文本文件" onclick="readAsText()" />  
    59 </p>  
    60 <div id="result" name="result"></div>  



    实例:
    dom:
    <label v-if="show.photo==true" for="filePhoto" class="photo">
      <input id="filePhoto" type="file" @change="filePhotoChange($event)">
      <img :src="design.image" alt="照片">
    </label>
     
    js:
     
    filePhotoChange(event){//照片文件筐改变事件
      var self = this;
      var files = event.target.files, file;
      if (files && files.length > 0) {
        // 获取目前上传的文件
        file = files[0];
        if(!tool.formatUpload(file)){// 文件大小校验的动作 是否为图片 以及图片不能超过3M
          return false;
        }
        let reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function (e) {
          console.log(e.target.result);
          self.design.image = e.target.result;
        }
      }
    }


  • 相关阅读:
    python 线性回归(Linear Regression)预测波士顿房价
    python支持向量机分类MNIST数据集
    python朴素贝叶斯分类MNIST数据集
    感知机(perceptron)
    LMS Algorithm 最小均方算法
    线性回归(Linear Regression)和最小二乘法(ordinary least squares)
    KNN实现mnist、fashion mnist数据集的分类
    JavaScript一些常见的知识点
    用js做一个许愿墙
    js做留言板(可以评论 删除评论 评论时间)
  • 原文地址:https://www.cnblogs.com/fqh123/p/10221948.html
Copyright © 2011-2022 走看看