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