站长资讯网
最全最丰富的资讯网站

HTML5 FileReader接口的详细介绍

1、FileReader概述

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

其中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" 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>

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号