HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。
FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法:
1.检测浏览器对FileReader的支持
if(!window.FileReader){
span.innerHTML = "你的浏览器不支持图片上传预览功能";
return;
}
2. 调用FileReader对象的方法
FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。
方法名 | 参数 | 描述 |
abort | none | 中断读取 |
readAsBinaryString | file | 将文件读取为二进制码 |
readAsDataURL | file | 将文件读取为 DataURL |
readAsText | file, [encoding] | 将文件读取为文本 |
readAsText:该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。
readAsBinaryString:该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。
readAsDataURL:这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。
3. 处理事件
FileReader 包含了一套完整的事件模型,用于捕获读取文件时的状态,下面这个表格归纳了这些事件。
事件 | 描述 |
onabort | 中断时触发 |
onerror | 出错时触发 |
onload | 文件读取成功完成时触发 |
onloadend | 读取完成触发,无论成功或失败 |
onloadstart | 读取开始时触发 |
onprogress | 读取中 |
文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果,绝大多数的程序都会在成功读取文件的时候,抓取这个值。
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function showImage(fileElement){
var span = document.getElementById("show");
//判断浏览器是否支持文件预览
if(!window.FileReader){
span.innerHTML = "你的浏览器不支持图片上传预览功能";
return;
}
var file = fileElement.files[0];
//用正则表达式判断是否是图片类型
if(!/^image\/\w+$/.test(file.type)){
alert("请按规矩出牌");
return;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload=function(e){
span.innerHTML = "<img src="+reader.result+" alt='this is a img'/>";
}
}
</script>
</head>
<body>
<form action="" enctype="">
<fieldset>
<legend>图片文件上传预览</legend>
<input type="file" name="photo" id="photo" onchange="showImage(this)"/>
<span id="show"></span>
</fieldset>
</form>
</body>
</html>
分享到:
相关推荐
HTML5之FILEREADER的使用.pdf
在实际开发中,FileReader API通常与HTML5的`<input type="file">`结合使用,允许用户选择本地文件进行操作。同时,由于涉及到用户隐私,这个API只能用于读取用户明确选择的文件,不能直接访问用户的整个文件系统。 ...
FileReader 接口是 HTML5 中的一个异步 API,用于读取文件中的数据。该接口提供了四个方法,分别是 readAsBinaryString、readAsText、readAsDataURL 和 abort。其中,readAsBinaryString 方法将文件读取为二进制编码...
Filereader与Promise的搭配使用/JavaScript异步回调函数返回值 完美解决!!!!!!! 工作中项目需求:读取用户上传的Excel文件,并将Excel转换为json数据格式,然后上传至后台数据库。 问题点:Filereader中new ...
下面是一个简单的HTML5文件读取示例,展示了如何使用FileReader读取不同类型的文件内容: ```html 读取图像" onclick="readAsDataUrl();"> 读取二进制数据" onclick="readAsBinaryString();"> 读取文本文件...
以上就是H5 FileReader读取shp文件及其相关文件并加载到地图上的核心知识点,涉及到的技术包括HTML5 API、第三方库的使用、地理数据解析以及地图绘制。理解并掌握这些技能,可以实现Web端的离线GIS应用,提供更丰富...
本文将深入探讨如何使用HTML5中的FileReader、Canvas等技术来实现这一功能。 HTML5作为现代Web开发的基石,引入了许多增强功能,如多媒体处理、离线存储和拖放操作等。在图片预览和裁剪场景中,FileReader API用于...
HTML5的FileReader API是现代Web开发中一个重要的特性,特别是在处理用户上传文件时,它提供了在客户端预处理文件的能力,极大地增强了用户体验和安全性。在传统的HTML表单上传中,文件上传过程通常涉及将文件完全...
FileReader.js 封装了 HTML5 的 FileReader interface ,使用上更加简单。 浏览器支持: Internet Explorer: 10 Firefox: 10 Chrome: 13 Opera: 12 Safari: partial 标签:FileReader
通过以上分析可以看出,利用JavaScript和HTML5的FileReader实现文件上传功能是一个涉及前端多个知识点的综合应用,从API的使用到事件处理,从安全性考量到用户体验优化,都是开发者在实际开发过程中需要认真对待的...
JavaScript(简称JS)是一种广泛使用的网页脚本语言,而HTML5是HTML标准的最新版本,引入了诸多新特性和API,其中包括FileReader对象。FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(例如用户...
FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据。到目前文职,只有FF3.6+和Chrome6.0+实现了FileReader接口。 1、FileReader接口的方法 FileReader接口有4个...
HTML5提供了一个用于文件读取的API,即FileReader接口,它允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用FileReader可以实现文件的分布读取,这对于处理大文件时,可以有效减少...
对于那些使用IE9及以下版本的老用户来说,由于这些浏览器对HTML5的支持非常有限甚至不支持,这将直接影响到网站的功能性和用户体验。本文将探讨如何解决这一问题,并提供一些实用的方法。 #### 一、理解HTML5与IE9...
给定一个HTML5 File对象(例如从HTML5拖放),将其转换为可读流。 安装 与npm和 $ npm install filereader-stream 例子 var drop = require ( 'drag-and-drop-files' ) var concat = require ( 'concat-stream' ) ...
行阅读器使用 HTML5 文件 API 逐行读取文件。用法用户选择文件后: // Grab a file referencevar file = document . getElementById ( 'my-file-input' ) . files [ 0 ] ;// Create a new instance of the ...
HTML5之FileReader的使用 HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。 FileReader的使用方式非常简单,可以按照如下...