html5 filereader讀取文件,H5的FileReader分布讀取文件應該如何使用以及其方法簡介...

這次給大家帶來H5的FileReader分布讀取文件應該如何使用以及其方法簡介,H5的FileReader分布讀取文件的使用以及其方法簡介的注意事項有哪些,下面就是實戰案例,一起來看一下。

先介紹一下H5中FileReader的一些方法以及事件

FileReader方法

名稱 作用

about() 終止讀取

readAsBinaryString(file) 將文件讀取為二進制編碼

readAsDataURL(file) 將文件讀取為DataURL編碼

readAsText(file, [encoding]) 將文件讀取為文本

readAsArrayBuffer(file) 將文件讀取為arraybuffer

FileReader事件

名稱

作用

onloadstart 讀取開始時觸發

onprogress 讀取中

onloadend 讀取完成觸發,無論成功或失敗

onload 文件讀取成功完成時觸發

onabort 中斷時觸發

onerror 出錯時觸發

代碼

分布讀取文件核心思想, 將文件分塊以每M進行讀取.

HTML部分

Document

分步讀取文件:

讀取進度:

var progress = document.getElementById('Progress');//進度條

var events = {

load: function () {

console.log('loaded');

},

progress: function (percent) {

console.log(percent);

progress.value = percent;

},

success: function () {

console.log('success');

}

};

var loader;

// 選擇好要上傳的文件后觸發onchange事件

document.getElementById('File').onchange = function (e) {

var file = this.files[0];

console.log(file)

//loadFile.js

loader = new FileLoader(file, events);

};

document.getElementById('Abort').onclick = function () {

loader.abort();

}

loadFile.js部分/*

* 文件讀取模塊

* file 文件對象

* events 事件回掉對象 包含 success , load, progress

*/

var FileLoader = function (file, events) {

this.reader = new FileReader();

this.file = file;

this.loaded = 0;

this.total = file.size;

//每次讀取1M

this.step = 1024 * 1024;

this.events = events || {};

//讀取第一塊

this.readBlob(0);

this.bindEvent();

}

FileLoader.prototype = {

bindEvent: function (events) {

var _this = this,

reader = this.reader;

reader.onload = function (e) {

_this.onLoad();

};

reader.onprogress = function (e) {

_this.onProgress(e.loaded);

};

// start 、abort、error 回調暫時不加

},

// progress 事件回掉

onProgress: function (loaded) {

var percent,

handler = this.events.progress;//進度條

this.loaded += loaded;

percent = (this.loaded / this.total) * 100;

handler && handler(percent);

},

// 讀取結束(每一次執行read結束時調用,并非整體)

onLoad: function () {

var handler = this.events.load;

// 應該在這里發送讀取的數據

handler && handler(this.reader.result);

// 如果未讀取完畢繼續讀取

if (this.loaded < this.total) {

this.readBlob(this.loaded);

} else {

// 讀取完畢

this.loaded = this.total;

// 如果有success回掉則執行

this.events.success && this.events.success();

}

},

// 讀取文件內容

readBlob: function (start) {

var blob,

file = this.file;

// 如果支持 slice 方法,那么分步讀取,不支持的話一次讀取

if (file.slice) {

blob = file.slice(start, start + this.step);

} else {

blob = file;

}

this.reader.readAsText(blob);

},

// 中止讀取

abort: function () {

var reader = this.reader;

if(reader) {

reader.abort();

}

}

}

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272960.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 查詢某一主鍵在那些表中中被設置為外鍵了

use information_schema; show tables; select * from KEY_COLUMN_USAGE where COLUMN_NAMEareaid; 轉載于:https://www.cnblogs.com/liaojie970/p/4799750.html

室內空氣流動原理圖_新風系統原理圖—新風系統原理介紹

如今我們在進行新家的裝修的時候&#xff0c;不少人為了家人的健康著想&#xff0c;都在選購家電的同時會選擇安裝一款新風系統。但是盡管如此&#xff0c;大家對新風系統原理其實并不了解&#xff0c;更不要提新風系統各部分的原理了&#xff0c;下面小編就結合新風系統原理圖…

計算機網絡線路爭用,計算機網絡系統集成復習要點

計算機網絡系統集成復習要點計算機網絡系統集成復習要點1.在信息領域&#xff0c;對于系統集成一般分為軟件集成、硬件集成和網絡系統集成。2.按網絡覆蓋范圍的大小&#xff0c;將計算機網絡分為局域網(LAN)、城域網(MAN)、廣域網(WAN)和互聯網。3. 計算機網絡拓撲結構是指一個…

mrsql查詢第二高的成績_mysql-查找用戶的最高分數和相關的詳細信息

我有一個表,用戶可以在其中存儲分數和有關該分數的其他信息(例如,分數注釋或花費的時間等).我想要一個mysql查詢,該查詢可找到每個用戶的個人最佳成績及其相關的注釋和時間等我嘗試使用的是這樣的&#xff1a;SELECT *,MAX(score)FROM table GROUP BY(用戶)這樣做的問題是,雖然…

centos 7 防火墻和端口配置

開啟redis端口&#xff0c;修改防火墻配置文件 vi /etc/sysconfig/iptables 加入端口配置 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379:7000 -j AC…

計算機網絡實驗11.6.1,6.111 2004春季課程:數位系統概論實驗(Introductory Digital Systems Laboratory, Spring 2004)...

摘要&#xff1a;Lectures and labs on digital logic, flipflops, PALs, counters, timing, synchronization, finite-state machines, and microprogrammed systems prepare students for the design and implementation of a final project of their choice: games, music, …

v380pro設備連接失敗_天貓精靈可以連接臺式電腦使用嗎?需要什么東西? 安裝操作是哪幾個步驟? 最好有圖片解說!...

使用語音將天貓精靈調到【藍牙配對】&#xff1b;打開電腦的藍牙適配界面&#xff0c;讓電腦找到天貓精靈&#xff0c;稍等片刻&#xff0c;點擊【使用遠程裝置的揚聲器聆聽來自此PC的音頻】后的連接&#xff1b;最后調整音量即可。以下是詳細介紹&#xff1a;1、對天貓精靈說【…

SWOT分析是神馬?

SWOT分析是思維的工具來理解事物的方式。人生在世&#xff0c;作為一個獨立的實體&#xff0c;不可避免地需要思考的問題。除非你是豬。豬比這更聰明。眠質量&#xff0c;都要完爆白領&#xff0c;藍領和金領們。SWOT分析分為四個象限。我們用一頭名豬——麥兜來打個例如就清楚…

hive 日誌怎麼查看_Hive各個日志里都存放了什么信息?

審計日志首先&#xff0c;對于審計日志來說&#xff0c;記錄了某個時間點某個用戶從哪個IP發起對HiveServer或者MetaStore的請求以及記錄執行的語句是什么。如下的HiveServer審計日志&#xff0c;表示在2016-02-01 14:51:22 用戶user_chen向HiveServer發起了show tables請求&am…

語音媒體和信令的測試軟件,IP多媒體子系統信令分析工具的設計與實現

摘要&#xff1a;IP多媒體子系統(InternetProtocolMultimediaSubsystem,IMS)為基于IP的移動和固定通信融合提供了基礎,并被業界認為是網絡演進的一個重要階段.與此同時,信令分析工具一直被電信運營商,設備供應商,測試儀器廠商廣泛而深入的關注.一款優秀的信令分析工具,可以使設…

大小寫轉換

1 ;小寫字母的ASCII碼比大寫字母的ASCII碼的值大20H。2 ;比如大寫字母A的ASCII值為01000001 小寫字母a的ASCII碼為&#xff1a;011000013 ;公式為 a(01100001) - 20H(100000) A(01000001)4 ;A(01000001) 20H(100000) a(01100001)5 assume cs:codesg,ds:datasg6 7 datasg seg…

四象限法推導lm曲線_試用幾何方法推導IS曲線(四象限法)

【簡答題】請根據自己的實際情況,撰寫一份適合自己的“征婚啟事”。內容積極健康。文體,字數等不限【填空題】由一棵二叉樹的前序序列和 序列可唯一確定這棵二叉樹。 (1.0分)【判斷題】完全二叉樹一定是滿二查樹。 (1.0分)【判斷題】二叉樹的前序遍歷中,任意一個結點均處于其子…

IDE-Ecplise-代碼注釋 模版 編碼規范 配色

說明&#xff1a; 代碼注釋主要用于方便代碼后期維護&#xff0c;編碼規范&#xff0c;增加代碼閱讀性和維護性。因網上看到的很多博客中片段局多&#xff0c;故整理后重寫一篇&#xff0c;方便交流學習。 先看下加過注釋模版后的效果。如上圖所示&#xff0c;創建類&#xff0…

通過路由遠程計算機重啟,華為無線路由器三種常用重啟的方法

日常重啟無線路由器并不是一個高難度動作&#xff0c;但是你了解華為(HUAWEI)家用無線路由器的三種常用的重啟的方法嗎&#xff1f;這三種方法也適用于絕大多數品牌的路由器&#xff0c;只不過在某個細節上略有區別。華為路由器的三種常用重啟方法分別是&#xff1a;硬重啟、軟…

個人信息管理系統代碼_學生信息管理系統(springboot + vue)

學生信息管理系統零、基礎項目為前后分離項目1、前端(front-end)基于 vue-admin-template 開發2、后端(rear-end)Jdk8Maven3MySQL5.7SpringBoot2SQLYog一、功能模塊圖圖片.png二、系統預覽1、登錄登錄.png2、首頁首頁.png3、查看學生信息查看學生信息.png4、編輯學生信息編輯學…

蘋果手機6s運營商在哪里顯示無服務器,iPhone6s信號很弱或無服務如何解決【解決方法】...

很多果粉都遇到過自己的手機常常“無服務”或者信號很弱的情況。 iphone6s 信號很弱或無服務怎么辦&#xff1f;iPhone手機信號不好的原因有很多&#xff0c;排除SIM卡&#xff0c;手機本身硬件故障等問題&#xff0c;你可以嘗試以下方法“修復”你的手機信號問題。1、開關飛行…

iOS開發網絡資源整理-持續更新

本文記錄iOS開發相關的網絡社區和博客 1.objc中國 網址&#xff1a;http://objccn.io簡介&#xff1a;onevcat創建,項目的成立源于國內 Objective-C 社區對 objc.io 的翻譯活動。2.cocoachina 網址&#xff1a;http://www.cocoachina.com簡介&#xff1a;CocoaChina創立于2008年…

72年屬鼠48歲有一災2020_李半仙推算:1972年虛歲48歲屬鼠人,2020年干什么最能發財??...

李半仙推算:1972年虛歲48歲屬鼠人&#xff0c;2020年干什么最能發財&#xff1f;&#xff1f;生肖屬鼠的朋友&#xff0c;在未來&#xff0c;喜事接二連三&#xff0c;屬鼠人能夠得到財神賜福&#xff0c;一路大發特發&#xff0c;很快就會有發財致富的商機&#xff0c;加上屬鼠…

sun服務器操作系統使用,SUN ILOM使用指南

SUN ILOM使用指南Sun ILOM使用指南/by pupil2008.09.16Sun Integrated Lights Out Manager簡稱ILOM,是一種服務處理器(SP,service processor),可以通過它遠程管理和控制Sun服務器.ILOM的運行不依賴于SunOS,也不依賴于OBP固件.一旦接通電源,ILOM就 開始運行,而不管POST,SunOS是否…

vue怎么插入接口demo_前端學起來特別吃力,新人入前端怎么學?

最近知乎收到一些問題&#xff0c;問前端學起來吃力&#xff0c;連續更新幾次回答的比較全了。現在整理下分享給掘金的小伙伴們。原知乎問題:前言前端工作兩年多。大部分前端原理、框架都能完全運用。工作中幾乎遇不到解決不了的問題&#xff08;除了那些惡心無法實現的需求&am…