zoukankan      html  css  js  c++  java
  • FileReader对象——如何实现File中数据的读取

    FileReader这个对象,平时可能不会怎么接触,因为它不是很常用,但毕竟是H5的东西,多少还是知道它是做什么的。今天就来介绍一下FileReader是做什么用的,以及该对象相关属性和方法。

    FileReader对象可以异步读取文件里的数据。对,你没有听错,就是文件里的数据,不过不能直接读取文件里的内容,它只能读取Blob和File对象里存储的文件数据。

    FileReader提供的属性有:

      error属性会返回数据读取时的错误信息。

      onload属性是一个事件属性,它会在读取文件方式为readAsArrayBuffer、readAsBinaryString、readAsDataURL或readAsText的时候,这个事件会触发。

      readState属性会返回读取文件操作时的状态。

      result属性回返回文件里的内容,当然这个属性只有读取成功并结束之后,才能可以用。

    FileReader提供的方法有:

      abort方法会取消FileReader的读取操作,触发之后readeState的状态会变为已完成。

      readAsArrayBuffer方法会读取数据内容,并以ArrayBuffer的形式返回,返回后会触发一个loadend事件,并且readState的状态会变为已完成。方法接收一个Blob和File对象作为参数。

      readAsBinaryString方法会把读取的Blob和File对象以二进制的形式返回,其它与readAsArrayBuffer方法相同。不过这个方法并不是标准的,所以尽量不要去使用它。

      readAsDataURL方法会把读取的Blob和File对象以data:URL的形式返回,其它与readAsArrayBuffer方法相同。

      readAsText方法会把读取的Blob和File对象以特殊编码形式的字符串返回,除了多了个指定编码格式字符串,其它与readAsArrayBuffer方法相同。不过这个方法是异步的,因此需要通过onload和loadend事件来进行监听。

    FileReader提供的事件有:

      loadstart事件数据开始读取时触发。

      progress事件

      abort事件当数据读取停止时触发。

      error事件当数据读取发生异常的时候会触发。

      load事件当读取数据完成以后的时候会完成。

      loadend事件当读取数据结束的时候会触发。

    FileReader对象的介绍结束了。我能知道FileReader对象,也是在用Nodejs写文件上传的时候,不知道该怎么给后台发送数据的时候,通过查找资料才直到,不过可惜的是,最后也没有用到这个对象。因为把数据读取出来之后,然后添加到FormData中传送给后台,后台读取数据的时候,出现了点问题。NodeJs没有提供内置的解析FormData数据的模块,需要用第三方提供的模块,来进行解析。后来用了第三方的插件,发现没有必要再用这个对象专门把数据读取出来,也就没有在用。

      

      

      

  • 相关阅读:
    【Leetcode】【Easy】Remove Duplicates from Sorted List
    【Leetcode】【Easy】Pascal's Triangle II
    【Leetcode】【Easy】Pascal's Triangle
    【Leetcode】【Easy】Binary Tree Level Order Traversal II
    【Leetcode】【Easy】Binary Tree Level Order Traversal
    【Leetcode】【Easy】Maximum Depth of Binary Tree
    【Leetcode】【Easy】Minimum Depth of Binary Tree
    【Leetcode】【Easy】Balanced Binary Tree
    【Leetcode】【Easy】Symmetric Tree
    如何使用Action.Invoke()触发一个Storyboard
  • 原文地址:https://www.cnblogs.com/wangyinqian/p/7816670.html
Copyright © 2011-2022 走看看