1,概述

Web应用应该具备处理广泛用户输入问题的能力,例如在Web富应用中,用户希望上传文件到服务器。File API定义了访问文件的基本操作途径,包括文件、文件列表集、错误处理等,同时,File API还定义了描述文件异步处理进程中的一些元数据。接下来,我们一起看看File的应用。

2,FileList接口

接口描述:

1 interface FileList {

2 getter File? item(unsigned long index);

3 readonly attribute unsigned long length;

4 };

由FileList对象实现,它表示上传文件的集合列表。如下:

var fileList = document.forms['formName']['file'].files;

fileList有如下属性:

1,length:表示文件列表长度,即文件数量

fileList有如下方法:

1,index(indexNum):indexNum是文件在文件列表中的位置,从0开始,和普通数组下标一样,如果不存在,则返回null.

3,Blob接口

接口描述:

1 interface Blob {

2

3 readonly attribute unsigned long long size;

4 readonly attribute DOMString type;

5

6 //slice Blob into byte-ranged chunks

7 Blob slice(optional long long start,

8 optional long long end,

9 optional DOMString contentType);

10

11 };

由Bob对象实现,它是一个原始数据对象。如下:

1 // Create a new Blob object

2

3 var a = new Blob();

4

5 // Create a 1024-byte ArrayBuffer

6 // buffer could also come from reading a File

7

8 var buffer = new ArrayBuffer(1024);

9

10 // Create ArrayBufferView objects based on buffer

11

12 var shorts = new Uint16Array(buffer, 512, 128);

13 var bytes = new Uint8Array(buffer, shorts.byteOffset + shorts.byteLength);

14

15 var b = new Blob(["foobarbazetcetc" + "birdiebirdieboo"], {type: "text/plain;charset=UTF-8"});

16

17 var c = new Blob([b, shorts]);

18

19 var a = new Blob([b, c, bytes]);

20

21 var d = new Blob([buffer, b, c, bytes]);

Bolb有如下属性:

1,size:数据的大小

2,type:数据的MIME类型

Bolb有如下方法:

1,slice:用来读取原始数据中的某块数据,详情见如下例子

1 // obtain input element through DOM

2

3 var file = document.getElementById('file').files[0];

4 if(file)

5 {

6 // create an identical copy of file

7 // the two calls below are equivalent

8

9 var fileClone = file.slice();

10 var fileClone2 = file.slice(0, file.size);

11

12 // slice file into 1/2 chunk starting at middle of file

13 // Note the use of negative number

14

15 var fileChunkFromEnd = file.slice(-(Math.round(file.size/2)));

16

17 // slice file into 1/2 chunk starting at beginning of file

18

19 var fileChunkFromStart = file.slice(0, Math.round(file.size/2));

20

21 // slice file from beginning till 150 bytes before end

22

23 var fileNoMetadata = file.slice(0, -150, "application/experimental");

24 }

4,File接口

接口描述:

1 interface File : Blob {

2 readonly attribute DOMString name;

3 readonly attribute Date lastModifiedDate;

4 };

由File对象实现,它继承自Blob对象,指向一个具体的文件。

File有如下属性:

1,name:文件的名称

2,lastModifiedDate:文件的最后修改时间

5,FileReader接口

接口描述:

1 interface FileReader: EventTarget {

2

3 // async read methods

4 void readAsArrayBuffer(Blob blob);

5 void readAsBinaryString(Blob blob);

6 void readAsText(Blob blob, optional DOMString encoding);

7 void readAsDataURL(Blob blob);

8

9 void abort();

10

11 // states

12 const unsigned short EMPTY = 0;

13 const unsigned short LOADING = 1;

14 const unsigned short DONE = 2;

15

16

17 readonly attribute unsigned short readyState;

18

19 // File or Blob data

20 readonly attribute any result;

21

22 readonly attribute DOMError error;

23

24 // event handler attributes

25 attribute [TreatNonCallableAsNull] Function? onloadstart;

26 attribute [TreatNonCallableAsNull] Function? onprogress;

27 attribute [TreatNonCallableAsNull] Function? onload;

28 attribute [TreatNonCallableAsNull] Function? onabort;

29 attribute [TreatNonCallableAsNull] Function? onerror;

30 attribute [TreatNonCallableAsNull] Function? onloadend;

31

32 };

由FileReader对象实现,用来读取文件里面的数据,提供三个常用的读取文件数据的方法,另外读取文件数据也提供了异步方式。

FileReader属性列表:

事件列表

事件说明

onloadstart

文件读取开始时触发

onprogress

当读取进行中时定时触发。事件参数中会含有已读取总数据量。

onabort

当读取被中止时触发。

onerror

当读取出错时触发。

onload

当读取成功完成时触发。

onloadend

当读取完成时,无论成功或者失败都会触发

FileReader方法列表:

方法列表

方法说明

readAsBinaryString()

读取文件内容,读取结果为一个 binary string。文件每一个 byte 会被表示为一个 [0..255] 区间内的整数。函数接受一个 File 对象作为参数。

readAsText()

读取文件内容,读取结果为一串代表文件内容的文本。函数接受一个 File 对象以及文本编码名称作为参数。

readAsDataURL

读取文件内容,读取结果为一个 data: 的 URL。DataURL 由 RFC2397 定义

php html5 api,HTML5 File API解读相关推荐

  1. php 下 html5 XHR2 + FormData + File API 上传文件

    FormData的作用: FormData对象可以帮助我们自动的打包表单数据,通过XMLHttpRequest的send()方法来提交表单.当然FormData也可以动态的append数据.FormD ...

  2. 学习File API用于前端读取文件

    1. File API简介 File API对于某些专门的网站的不可或缺的.现在常用它实现对文件的预览等功能. File API规定怎么从硬盘上提取文件,直接交给在网页中运行中的Javascript代 ...

  3. HTML5 file api读取文件的MD5码工具

    1.工具的用途:用HTML5 file api读取文件的MD5码.MD5码在文件的唯一性识别上有很重要的应用,业内常用MD5进行文件识别.文件秒传.文件安全性检查等: 2.适用性:IE.Chrome皆 ...

  4. Resumable.js - 基于HTML5 File API的可断点续传的文件上传插件

    http://resumablejs.com/ A JavaScript library providing multiple simultaneous, stableand resumable up ...

  5. HTML加js实现计算文件哈希值,HTML5 File API 配合 Web Worker 计算大文件 SHA3 Hash 值

    这学期的安全学课程有个作业,内容是写一个软件实现 SHA3 Hash 值的快速计算.想一想老师这么安排,大致上也有一种推广新的密码学算法的意图.既然希望应用起来,天然跨平台的 Web 显然是一项非常具 ...

  6. 基于html5 File API文件操作

    文章来源:小青年原创  发布时间:2016-08-16  关键词:blob,File,FileReader,DataURI,URL  转载需标注本文原始地址: http://zhaomenghuan. ...

  7. html读取url中文件,HTML5基础知识 - JavaScript API - File - 读取文件为DataURL

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 // Content section used alot var content = document.ge ...

  8. html5 dom api,HTML5 DOM File API

    访问选中的文件 简单的html代码: 通过File API,我们可以在用户选取一个或者多个文件之后(如果你的程序可以让用户选择多个文件,记得要在input元素上加上multiple属性),访问到代表了 ...

  9. HTML5关于上传API的一些使用(上)

    HTML5提供了很多有用的API,其中就包括上传的API,XMLHttpRequest2.0,在HTML5时代之前,需要进行二进制的上传一般都会才用flash的方案,但是当XMLHttpRequest ...

最新文章

  1. ???既然post可以将form 表单的数据提交到 jsp页面上面显示出来,为什么还要提交到servlet页面...
  2. Matlab-PEAKS函数曲线
  3. c#实现分组服务器,单一无重复生成ID
  4. Navicat连接MySQL8.0出现2059错误
  5. 阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...
  6. 了解使用JavaScript进行面向对象编程的基础(并增强您的编码…
  7. leetcode176. 第二高的薪水(SQL)
  8. android触摸效果,Android UI实现单行文本水平触摸滑动效果
  9. HTML section元素
  10. List和Set中忽略的方法addAll(Collection c)和retainAll(Collection c)
  11. echarts实现数据可视化
  12. 毕业一年后,我为什么选择去香港做IT?
  13. 数据结构大作业-DBLP科学文献管理系统(三)聚团分析(并查集,最大团问题)
  14. 为什么最近iOS开发岗位那么多(第一篇)
  15. 程序员掉入传销组织用“代码”求救,同事秒懂
  16. 阿里云大数据型实例规格族d1配置性能详解
  17. 【STC15控制WS2812 RGB彩灯级联】
  18. 特斯拉与Uber达成协议,为Uber伦敦司机提供电动汽车
  19. jmeter接口自动化,你敢想,我敢玩
  20. python怎么编写口算题_来出口算题—— Python编程

热门文章

  1. java 往excel中写数据库,poi将数据写入excel表格-怎么用java把数据库里的数据写入到excel表中...
  2. 武汉锅检所检测机器人_宿迁水上行走管道检测机器人CCTV-武汉天仪仪器
  3. 微服务 mysql 连接池_【mysql】druid,连接池和微服务的问题
  4. SET CONSTRAINTS DEFERRED | IMMEDIATE
  5. 上传图片至服务器,写入到数据库Blob字段中,以及从数据库读取Blob信息(iframe父子页面传值)(2)
  6. android通讯录备份恢复代码逻辑
  7. Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应
  8. Linux基本操作和知识
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的OA办公系统
  10. 学生管理系统php网站,学生信息管理系统 网站之modify.php