【JavaScript】HTML5 純JS使用 FileReader 以指定的編碼格式GB2312/UTF-8打開并讀取txt文本文件
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
最近有從本地讀取txt文件的需要,奈何網上搜索js讀取本地txt,都是新建一個fso對象,即(FileSystemObject)。自己試了半天不好使(后來發(fā)現貌似只能在IE上跑)。于是使用H5的fileReader來解決問題。 fileReader ApiflieReader 三種狀態(tài): FileReader.readyState: 0,1,2
fileReader事件處理,6種。 1、onabort:文件讀取終端,觸發(fā)。 2、onerror:文件遇到錯誤觸發(fā)。 3、onload:文件成功讀取觸發(fā)。 4、onloadstart:文件開始讀取時觸發(fā)。 5、onloadend:文件讀取結束時觸發(fā)(無論成功失?。?。 6、onprogress:文件讀取中觸發(fā)。 fileReader讀取方法,5種。 1、FileReader.abort()。中斷讀取操作,讀取狀態(tài)返回為done,即readyState=2。 2、FileReader.readAsArrayBuffer()。將文件讀取為ArrayBuffer形式。 3、FileReader.readAsBinaryString() 。將文件讀取為二進制字符串(非標準方法,不推薦使用)。 4、FileReader.readAsDataURL()。讀取文件的URL,應用場景,本地預覽圖片。 5、FileReader.readAsText()。將文件已文本形式讀取。即讀取txt等,此處可以指定要讀取文件的編碼格式:GB2312、UTF-8等。 讀取file代碼示例(5為例):HTML: <input type="file" ng-model="my_file" id="my_file" style="display: none;"> <button value="導入" ng-click="myfile()"></button> JS: $scope.myfile = function () { $("#my_file").click(); } $("#my_file").bind('change', function (source) {
var file = document.getElementById("my_file").files[0]; var reader = new FileReader();
//將文件以文本形式讀入頁面 reader.readAsText(file, "gb2312"); reader.onload = function (e) { var fileText = e.target.result.split("\n"); angular.forEach(fileText, function (data, index) { if (data.length) { data = data.split(',') $scope.persons.push(_.zipObject(['position', 'calculate', 'maxCalculate', 'minCalculate'], data)); } }) $scope.$apply(); } }) reader.readAsText(file, "gb2312"); 開始沒有注明“gb2312”,讀取txt之后,文件顯示亂碼。注明后解決。 該文章在 2023/11/28 23:56:52 編輯過 |
關鍵字查詢
相關文章
正在查詢... |