视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
HTML5FileReader接口的详细介绍
2020-11-27 15:09:59 责编:小采
文档


1、FileReader概述

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 FileBlob 对象指定要读取的文件或数据。

其中File对象可以是来自用户在一个<input>元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后返回结果

2、FileReader接口方法

方法名参数描述
readAsBinaryStringfile将文件读取为二进制码
readAsTextfile,[encoding]将文件读取为文本
readAsDataURLfile将文件读取为DataURL
readAsArrayBufferfile将文件读取为ArrayBuffer对象
abort(none)中断读取操作

3、FileReader接口事件

事件描述
onabort数据读取中断时触发
onerror数据读取出错时触发
onloadstart数据读取开始时触发
onprogress数据读取中
onload数据读取成功完成时触发
onloadend数据读取完成时触发,无论成功失败

4、使用实例

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8">
 <title>Html5Test</title>
</head>
<body>
 <article>
 <header></header>
 <section>
 <p>
 <lable>请选择一个文件:</lable>
 <input type="file" id="file_reader">
 <input type="button" value="读取图像" onclick="readAsDataUrl();">
 <input type="button" value="读取二进制数据" onclick="readAsBinaryString();">
 <input type="button" value="读取文本文件" onclick="readAsText();">
 </p>
 <p id="file_reader_result" name="file_reader_result">
 <!-- 这里用来显示读取结果 -->
 </p>
 <script>
 var file_reader_result = document.getElementById("file_reader_result");
 // 检测浏览器是否支持FileReader
 if (typeof FileReader == "undefined") {
 file_reader_result.innerHTML = "您的浏览器不支持FileReader";
 file.setAttribute('disabled', 'disabled');
 }
 // 将文件以Data Url形式读入页面
 function readAsDataUrl(){
 // 检查是否为图像文件
 var f = document.getElementById("file_reader").files[0];
 if (!/image\/\w+/.test(f.type)) {
 file_reader_result.innerHTML = "请上传图片文件!";
 return false;
 };
 var reader = new FileReader();
 // 将文件以Data Url形式读入页面
 reader.readAsDataURL(f);
 reader.onload = function(e){
 file_reader_result.innerHTML = '<img src="' + this.result + '" alt="图片" />';
 }
 }
 // 将文件以二进制形式读入页面
 function readAsBinaryString(){
 // 检查是否为图像文件
 var f = document.getElementById("file_reader").files[0];
 if (!/image\/\w+/.test(f.type)) {
 file_reader_result.innerHTML = "请上传图片文件!";
 return false;
 };
 var reader = new FileReader();
 // 将文件以二进制形式读入页面
 reader.readAsBinaryString(f);
 reader.onload = function(e){
 file_reader_result.innerHTML = this.result;
 }
 }
 // 将文件以文本形式读入页面 目前测试仅支持txt文件
 function readAsText(){
 // 检查是否是文本文件
 var f = document.getElementById("file_reader").files[0];
 if (!/text\/\w+/.test(f.type)) {
 file_reader_result.innerHTML = "请上传文本文件!";
 return false;
 };
 var reader = new FileReader();
 // 将文件以文本形式读入页面
 reader.readAsText(f);
 reader.onload = function(e){
 file_reader_result.innerHTML = this.result;
 }
 }
 </script>
 </section>
 </article>
</body>
</html>

下载本文
显示全文
专题