HTML5技术

HTML5 FileReader接口学习笔记 - 就只是小茗

字号+ 作者:H5之家 来源:H5之家 2017-03-10 16:00 我要评论( )

1、FileReader概述 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob对象指定要读取的文件或数据。 其中File对象可以是来自用户在一个input元素上选择文件后返回的FileList对象,也可以来自拖

1、FileReader概述

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

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

2、FileReader接口方法

方法名 参数 描述

readAsBinaryString file 将文件读取为二进制码

readAsText file,[encoding] 将文件读取为文本

readAsDataURL file 将文件读取为DataURL

readAsArrayBuffer file 将文件读取为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"> <input type="button" value="读取图像"> <input type="button" value="读取二进制数据"> <input type="button" value="读取文本文件"> </p> <div> <!-- 这里用来显示读取结果 --> </div> <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>

 更多参考内容详见:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5中的新事件 - zxyGo

    HTML5中的新事件 - zxyGo

    2017-03-10 14:00

  • Html5 基础----列表详述 - songqiaoli

    Html5 基础----列表详述 - songqiaoli

    2017-03-08 18:00

  • html5语义化布局标签 - 橡皮脸

    html5语义化布局标签 - 橡皮脸

    2017-03-06 16:00

  • 繁星H5之旅-HTML5表单新增元素与属性 - multistars

    繁星H5之旅-HTML5表单新增元素与属性 - multistars

    2017-03-06 15:02

网友点评