Html5 文件API(一)

[TOC]

## FileList ****对象与****File ****对象

直接看示例

html代码

<input type="file" id="file" multiple>
<input type="button" id="btn" value="文件上传">

js代码

window.onload = function(){
 function showFile(){
  var file = document.getElementById('file');
  for (var i = 0; i < file.files.length; i++) {
   console.log(file.files[i]);
  }
 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  showFile();
 };
};

示例中涉及属性multiple属性规定可同时选择多个选项。可参考multiple解释

## Blob ****对象

根据上个实例,因为file继承自blob,所以file可以得到文件的名字,尺寸,类型

files[i].name  //获得第i个文件的名字
files[i].size  //获得第i个文件的大小
files[i].type  //获得第i个文件的类型

为上个实例添加判断上传文件是否为图片

js代码

window.onload = function(){
 function showFile(){
  var file = document.getElementById('file');
  for (var i = 0; i < file.files.length; i++) {
   if (!/image\/\w+/.test(file.files[i].type)) {
    alert('请上传图片喔!');
   }else{
    console.log('成功上传。');
   }
  }
 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  showFile();
 };
};

## FileReader ****对象

直接看示例

html

<input type="file" id="file">
<input type="button" id="btn" value="读取文件">
<div id="result"></div>

五个对象

readAsBinaryString

把文件读取为二进制字符串

window.onload = function(){
 function readAsBinaryString(){
  var file = document.getElementById('file').files[0];

  var reader = new FileReader();
  reader.readAsBinaryString(file);
  reader.onload = function(e){
   var result = document.getElementById('result');

   result.innerHTML = this.result;
  };

 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  readAsBinaryString();
 };
};

readAsText

把文件读取为文本数据

  1. 新建一个文本文件readAsText.txt,文本内容随意填写
  2. js代码为
window.onload = function(){
function readAsText(){
 var file = document.getElementById('file').files[0];

 var reader = new FileReader();
 reader.readAsText(file);
 reader.onload = function(e){
  var result = document.getElementById('result');

  result.innerHTML = this.result;
 };

}

var btn = document.getElementById('btn');
btn.onclick = function(){
 readAsText();
};
};

readAsDataURL

将读取到的文件编码成Data URL

window.onload = function(){
 function readAsDataURL(){
  var file = document.getElementById('file').files[0];

  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e){
   var result = document.getElementById('result');

   result.innerHTML = '<img src="'+ this.result +'" alt="" />';
  };

 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  readAsDataURL();
 };
};

readArryButter

abort

中断读取操作

六个事件

onabort

加载被中断时

onerror

加载出错时

onloadstart

加载开始时

onprogress

加载过程中

onload

加载成功时

onloadend

加载结束后

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,614评论 1 10
  • HTML5 文件 API FileList 对象与 file 对象 FileList 对象:表示用户选择的文件列表...
    游学者灬墨槿阅读 3,980评论 0 0
  • H5 meta详解 viewport width:控制 viewport 的大小,可以指定的一个值,如果 600,...
    FConfidence阅读 4,266评论 0 3
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 10,842评论 0 7
  • 设计方案## 校首页是我校在互联网上向世界宣传和分享学校教学科研成果、展示我校当代大学生生活风采的窗口。目标报考本...
    Glow阅读 7,243评论 2 3

友情链接更多精彩内容