问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

H5的FileReader分布读取文件应该如何使用以及其方法简介

发布网友 发布时间:2023-08-12 03:24

我来回答

1个回答

热心网友 时间:2023-08-22 04:00


这次给大家带来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部分
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Document</title>
</head>

<body>
<form>
<fieldset>
<legend>分步读取文件:</legend>
<input type="file" id="File">
<input type="button" value="中断" id="Abort">
<p>
<lable>读取进度:</lable>
<progress id="Progress" value="0" max="100"></progress>
</p>
</fieldset>
</form>
<script src="./loadFile.js"></script>
<script>

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();
}
</script>
</body>
</html>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();
}
}
}相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
超链接的宽高怎样设置

在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值

如何用html的title属性实现鼠标悬停显示文字
h5页面使用FileReader读取本地图片文件并显示

效果图:参考Element.insertAdjacentHTML()适用范围:如有需要请点击查看原文: 原文地址

如何用JavaScript实现网页中对本地文件的显示和删除

有两种方法 1、在网站服务端,对上传的文件处理,并转换成前段支持的格式传回即可 2、前段调用h5的fileReader接口,可读取到本地文件,并用于显示,但是只支持web可用格式。

Web 前端怎样入门

方法:第一:理清Web前端的知识结构。要想高效学习Web前端知识,首先应该搞清楚Web前端都包括哪些技术结构。Web前端开发虽然技术难度并不高,但是技术细节却比较多,内容也比较杂。Web前端的基础包括三大部分,包括Html、CSS和JavaScript,其中JavaScript是学习的重点,也是难点。另外,vue等框架也是需要熟练掌握...

如何用电脑读取手机文件 java 读取文件 java读取文件内容 文件或目录损坏且无法读取 读取文件 c++读取文件 从文件中读取数据 python读取文件 c语言从文件读取数据
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哪个手机卡流量多又便宜 四级成绩单选了电子版怎么办啊? 直播平台排名是什么样的? 春季养生男人喝什么茶可保肝护肾? 养肾护肾的最好方法食补 养肾护肾吃什么最好食疗 养肾护肾的最好方法食补 养肾护肾的最好方法食补 怀孕初期不能吃的食物列表 鹿鞭怎么泡酒 快来学学吧 验孕棒说明书 ?验孕棒多少天才可以验出来 验孕棒怎么用 纺字的第七画是什么 cad2017是什么 acmecadsee2017功能有哪些 工伤认定与索赔标准 爬兰山的意义是什么 霍尼韦尔饮水机加热故障 佛山市兴华商场有限公司的管理创新 霍尼韦尔热水器显示故障 谁有重庆会计从业2014年10月新大纲视频,急求,好人有好报。 服装设计与工程专业不招文科生吗? 文科可以报服装设计与工程吗? 浙理工的服装设计还有服装设计与工程这两个系有什么区别?(据说后者还要... 您好。我是美术生,文科的。我听说服装设计与工程 这个专业,要学数理... ...在超市买的袋装的特品三元牛奶有什么区别,为什么价格差好多?_百度... 翡翠玉和田玉有什么区别呢 宁夏固原西吉县中考分数线 岳塘区有几个街道 专科生只能考选调生吗? 专科可以报选调生报考条件? 选调生专科可以报考吗? 请问:在游戏《黑手党2》里,最高犯罪等级是几星?怎么到4星就不升了... 奥迪a3如何通过按钥匙就能启动 房顶裂缝是什么原因? 如何修复打印机灰尘 绿爽西瓜产量高吗 哪里的西瓜产量最高 梦见飞龙下雨是什么意思 ...在天上飞,又不停的往我身上转,天还下着大雨,雷声震耳!这什么预兆... 拾拣[shí jiǎn]什么意思?近义词和反义词是什么?英文翻译是什么... 女人微信名带来好运招财转运 女人最吉祥招财的名字 求2012年天津中考数学第25题第三问的详细解法 求2011年天津中考数学第25题第三问的详细解法 2012房山初三数学二模25题第三问怎么做? 2010中考海淀二模数学25题第三问用初中方法详细解一下 翼支付可以看到转账记录里的银行卡号吗 华为翼支付卡号从哪里可以看到 柏林爱乐现在的指挥是谁? 柏林爱乐乐团的指挥是谁? 减速箱铭牌上的传动数比48.57是什么意思? 西门子滚筒洗衣机回路故障