当前位置: 首页 > news >正文

理财网站模板/网站建设优化公司

理财网站模板,网站建设优化公司,重庆给商家企业做网站,学校网站制作在众多HTML5规范中,有一部分规范是跟文件处理有关的,在早期的浏览器技术中,处理小量字符串是js最擅长的处理之一。但文件处理,尤其是二进制文件处理,一直是个空白。在一些情况下,我们不得不通过Flash/Activ…

在众多HTML5规范中,有一部分规范是跟文件处理有关的,在早期的浏览器技术中,处理小量字符串是js最擅长的处理之一。但文件处理,尤其是二进制文件处理,一直是个空白。在一些情况下,我们不得不通过Flash/ActiveX/NP插件或云端的服务器处理较为复杂或底层的数据。今天,HTML5的一系列新规范正在致力于让浏览器具备更强大的文件处理能力。

今天要介绍的FileAPI,就是为解决这类问题而生的。

总览

FileAPI是一些列文件处理规范的基础,包含最基础的文件操作的JavaScript接口设计。其中最主要的接口定义一共有4个:

◆ FileList接口: 可以用来代表一组文件的JS对象,比如用户通过input[type="file"]元素选中的本地文件列表

◆ Blob接口: 用来代表一段二进制数据,并且允许我们通过JS对其数据以字节为单位进行“切割”

◆ File接口: 用来代步一个文件,是从Blob接口继承而来的,并在此基础上增加了诸如文件名、MIME类型之类的特性

◆ FileReader接口: 提供读取文件的方法和事件

这里有两点细节需要注意:

1. 我们平时使用input[type="file"]元素都是选中单个文件,其本身是允许同时选中多个文件的,所以会用到FileList

2. Blob接口和File接口可以返回数据的字节数等信息,也可以“切割”,但无法获取真正的内容,这也正是FileReader存在的意义,而文件大小不一时,读取文件可能存在明显的时间花费,所以我们用异步的方式,通过触发另外的事件来返回读取到的文件内容

接口描述

这4个接口其实并不复杂,也很好理解(接口中的“#Foo”表示任意Foo类型的对象):

FileList接口

#FileList[index] // 得到第index个文件

Blob接口

#Blob.size // 只读特性,数据的字节数

#Blob.slice(start, length) // 将当前文件切割并将结果返回

File接口

#File.size // 继承自Blob,意义同上

#File.slice(start, length) // 继承自Blob,意义同上

#File.name // 只读属性,文件名

#File.type // 只读属性,文件的MIME类型

#File.urn // 只读属性,代表该文件的URN,几乎用不到,暂且无视

FileReader方法

#FileReader.readAsBinaryString(blob/file) // 以二进制格式读取文件内容

#FileReader.readAsText(file, [encoding]) // 以文本(及字符串)格式读取文件内容,并且可以强制选择文件编码

#FileReader.readAsDataURL(file) // 以DataURL格式读取文件内容

#FileReader.abort() // 终止读取操作

FileReader事件

#FileReader.onloadstart // 读取操作开始时触发

#FileReader.onload // 读取操作成功时触发

#FileReader.onloadend // 读取操作完成时触发(不论成功还是失败)

#FileReader.onprogress // 读取操作过程中触发

#FileReader.onabort // 读取操作被中断时触发

#FileReader.onerror // 读取操作失败时触发

FileReader属性

#FileReader.result // 读取的结果(二进制、文本或DataURL格式)

#FileReader.readyState // 读取操作的状态(EMPTY、LOADING、DONE)

代码示例

举例一:控制file控件,读取其中的第二个文件,并将其文本内容在控制台输出

varinput=document.querySelector('input[type="file"]'); // 找到***个file控件

varfirstFile=input.files[0]; // file控件的files特性其实就是一个FileList类型的对象

varsecondFile=input.files[1]; // 当file控件的multiple特性为true时,我们可以同时选择多个文件,通过input.files[n]可以按序访问这些文件

varreader=newFileReader(); // 新建一个FileReader类型的对象

reader.readAsText(secondFile); // 按文本格式读取file控件中的第二个文件

reader.onloadend=function(e) { // 绑定读取操作完成的事件

console.log(reader.result); // 取得读取结果并输出

};

举例二:给一个含utf-8编码的文本文件file去掉BOM头信息

varsize=file.size; // 先取得文件总字节数

varresult=file.slice(3, size - 3); // 用slice方法去掉开头的3个字节

***,对FileAPI实践的三点注意

1. 由于规范尚未截稿,#File.urn尚存较大变数,webkit并未实现此特性

2. #Blob.slice在webkit内核中加入了前缀,即#Blob.webkitSlice,且第二个参数不是“length”,而是“end”,话句话说,上面的示例二应改为file.webkitSlice(3, size)才能生效

3. 规范中还明确规定了各种出错处理和异常处理,这些内容是同样重要的:不论对于一套完备的规范,还是对于一个健壮的程序而言。由于篇幅有限,这部分就不细说了,大家可以在W3C官网自由查阅

以上就是FileAPI的简单介绍。万丈高楼平地起,后面的文件操作会更神奇更有趣。

原文:http://bulaoge.net/topic.blg?dmn=g3g4&tid=2344378#Content

【编辑推荐】

【责任编辑:陈贻新 TEL:(010)68476606】

点赞 0

http://www.jmfq.cn/news/5057497.html

相关文章:

  • wordpress站怎么优化/百度广告推广
  • 东莞建网站公司/东莞百度快速排名优化
  • dedecms学校网站模板/昆明百度推广优化
  • 自己做视频网站可以吗/什么平台可以打广告做宣传
  • 酒店网络营销策略论文/宁波抖音seo搜索优化软件
  • 线上 网站建设 商务信息/得物app的网络营销分析论文
  • 外贸购物网站制作/童程童美少儿编程怎样收费
  • 林州做网站/优化seo教程技术
  • 用php做电子商务网站/广告网页
  • 网站做毕业设计可靠吗/网站排名查询平台
  • 饶阳网站建设/百度关键词搜索排行
  • 那些网站是asp做的/关键词语有哪些
  • 网站开发按工时收费/网络营销策划方案论文
  • 老年人做网站/推荐6个免费国外自媒体平台
  • 高端品牌网站开发/广告联盟哪个比较好
  • 在美国建网站需要自己做服务器吗/厦门seo关键词优化代运营
  • 哪个网站做ic好/百度后台管理
  • 企业为什么做网站系统/山东服务好的seo
  • 青岛外贸建设网站制作/网站维护推广的方案
  • wordpress推广注册/东莞网站seo技术
  • 公会网站建设/朋友圈推广文案
  • 如何做网站迁移/app推广方式
  • 制作app的费用/windows优化大师是自带的吗
  • 海尔网站建设策划书/大批量刷关键词排名软件
  • 手机网站封装小程序/营销型网站建设服务
  • 企业网站建设立项书/seo服务哪家好
  • 牧童蝉网站建设/处理器优化软件
  • 兼职网站平台有哪些/百度推广做二级域名
  • 雅茂道网站建设/网络营销课程
  • 开发客户的70个渠道/优化大师兑换码