问:如何获取文本内容并显示在前端页面🤔
本文最后更新于:2023年1月12日 下午
前言
今天在水友群里看到有个前端小伙伴在群里发了个问题,“后端给我返了.txt
文本的地址,我怎么通过这个地址获取文本内容显示在页面上呀”,接着后面的群友的回答语出惊人,“工资给我,我来帮你”。“蛤,有这么简单吗”,我心头顿时冒出这个疑问。这不巧了吗,我正在看ArrayBuffer
的知识,看到说FileReader API
有个方法—readAsArrayBuffer
,能返回一个ArrayBuffer
对象,然后就写了个示例去读取上传的文件…… 结果还真有那么简单。
好吧,前面的内容和主题基本没啥太大关系,下面进入我们的正餐环节
FileReader
FileReader
对象允许Web
应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File
或Blob
对象指定要读取的文件或数据。
其中File
对象来自用户在一个input
元素上选择文件后返回的FileList
对象,也可以来自拖放操作生成的DataTransfer
对象,还可以是来自在一个HTMLCanvasElement
上执行mozGetAsFile()
方法后返回结果。
以上内容来自 MDN FileReader 😀
FileReader
为我们提供了几个方法,用于读取数据:
readAsArrayBuffer(blob)
: 用于将指定的Blob
或File
内容读取成ArrayBuffer
数据对象readAsText(blob[, encoding])
: 用于将指定的Blob
或File
读取成字符串内容readAsDataURL(blob)
: 用于将指定的Blob
或File
读取成包含data: URL
格式的base64
字符串内容
一旦读取完成,将会触发一个load
事件,并且可以通过reader.result
的方式获取到读取的内容
读取文件
现在我们知道了FileReader
能读取File
和Blob
对象指定的数据,首先我们需要先创建一个FileReader
实例
1 |
|
读取上传的文件
1 |
|
以上就完成了我们在本地选择的文件的读取操作
回到前面,我们遇到的问题是“后端给我返了.txt
文本的地址,我怎么通过这个地址获取文本内容显示在页面上呀”,因此,我们需要发起一个请求来获取这个文件
1 |
|
剩下的显示到前端页面,就看具体逻辑实现了
总结
FileReader
对象为我们提供了读取文件的能力,只要将需要读取的文件转换成Blob
对象,我们就能获取文件的内容,然后剩下的,就是对文件读取的内容进行相应的解码操作