读取方法:1、用“readAsText(file, encoding)”;2、用“readAsDataUrl(file)”;3、用“readAsBinaryString(file)”;4、使用reasarayBuffer(file)”。
本教程操作环境:windows7系统,javascript1.8.5版、Dell G3电脑。
出于安全和隐私的原因,web 应用程序不能直接访问用户设备上的文件。如果您需要阅读一个或多个本地文件,您可以使用input file和filereader来实现。在这篇文章中,我们将通过一些例子来看看它是如何工作的。
读取文件
阅读文件,主要用于阅读文件,[FileReader]类。
「对象所拥有的属性:」
「FileReader.error
」 :只读,一个DOMException,表示读取文件时出现的错误 。
「FileReader.readyState
」:只读 表示 FileReader 状态的数字。值如下:
常量名值描述EMPTY0尚未加载任何数据LOADING1数据,正在加载DONE2完成所有读取请求
「FileReader.result
」:只阅读,文件的内容。该属性只有在读取操作完成后才有效,数据格式取决于使用哪种方法来启动读取操作。
「对象所拥有的方法:」
readAsText(file, encoding)
:以纯文本的形式读取文件,读取的文本保存在result属性中。第二个参数代表编码格式。
readAsDataUrl(file)
:读取文件并将文件以数据URI的形式保存在Result属性中。
readAsBinaryString(file)
:读取文件,并将文件以字符串保存在result属性中。
readAsArrayBuffer(file)
:在阅读文件并保存一个包含文件内容的ArrayBuffer的Result属性中。
FileReader.abort()
:停止读取操作。返回时,readyState属性为DONE。
「文件读取的过程是异步操作,在此过程中提供了三个事件:progress、error、load事件。」
progress:每50ms左右,就会触发一次progress事件。
error:触发无法读取文件信息。
load:成功加载后会触发。
在下面的示例中,我们将使用readastext和readasdaurl方法来显示文本和图像文件的内容。
例一:阅读文本文件
为了将文件内容显示为文本,change需要重写:
首先,我们必须确保有一个可读的文件。如果用户取消或以其他方式关闭文件,选择对话框而不是文件,我们就没有什么可读和退出的。
然后我们继续创建一个filereader。reader的工作是异步的,以避免阻塞主线程和 UI 更新,这在阅读大文件(如视频)时非常重要。
reader发出一个