您的位置:首頁>正文

前端:FileReader類型之文字讀取

前言

什麼是FileReader類型?

FileReader類型實現的是一種非同步檔讀取機制, 通常可以用於讀取文字檔和圖片檔, 而本文只單獨講講文字檔的讀取。

使用FileReader讀取文字檔內容主要用到以下方法、事件和屬性:

方法: readAsText()

事件: load

屬性: result

二、結合具體實例講解文字讀取流程

1. HTML結構

主要用到input元素, type屬性值為file, 用於從本地獲取檔。

通過以上代碼在選擇檔時一次只能選擇一個, 若要一次選擇多個檔, 可在標籤上加上multiple="multiple"屬性值, 或者直接寫multiple。

或者:

2. 給input元素加上change事件

var file = document.getElementById("file");file.addEventListener('change',function(){ //........ });

當我們點擊按鈕並成功選擇檔時會執行以下 3 中的代碼。

3. 讀取文字檔中的文字內容

① 獲取已從本地選擇的檔

var fileVal = this.files[0]; // 獲取所選檔中的第一個檔

這裡用到了 File API, 每個 File 物件對應一個檔, 每個 File 物件有下面幾種屬性:

name: 本地檔案名

size: 檔的位元組大小

type: 文件的 MIME 類型

lastModifiedDate: 檔上一次被修改的時間

比如想要獲取檔案名可以這樣寫:

var fileName = this.files[0].name // 獲取到的檔案名中包含檔尾碼

② 新建 FileReader 物件

var reader = new FileReader();

③ 讀取檔中的文字內容

reader.readAsText(fileVal,'gb2312');

readAsText() 用於將檔中的內容以純文字的形式讀取, 讀取到的文本會保存在 result 屬性中(注意該方法執行沒有返回值), 可傳入兩個參數:檔物件和文本編碼類型。

注意: 這裡第二個參數最好寫上'gb2312'編碼類型, 否則可能出現文字亂碼問題。

④ 檔讀取成功後輸出文本內容

reader.onload = function(){ var text = this.result; console.log(text);};

通過 readAsText() 方法讀取到的純文字內容保存在 result 屬性中。

示例代碼

為了讓大家能夠從整體上更加清晰的瞭解文字讀取的流程, 在此貼上以上實例中的完整代碼:

// JavaScript部分var file = document.getElementById("file");file.addEventListener('change',function(){ var fileVal = this.files[0]; var reader = new FileReader(); reader.readAsText(fileVal,'gb2312'); reader.onload = function(){ var text = this.result; var p = document.createElement('p'); p.innerHTML = text.split('').join('
'); document.body.appendChild(p); };});

以上代碼中, text.split(' ').join('
')的作用是將文字檔中的分行符號轉換為
, 代表文本回車換行。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示