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数据的模块,需要用第三方提供的模块,来进行解析。后来用了第三方的插件,发现没有必要再用这个对象专门把数据读取出来,也就没有在用。

  

  

  

posted on 2017-11-18 20:45  木森焱  阅读(2038)  评论(0编辑  收藏  举报

导航