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

网站开发实习/三亚百度推广公司电话

网站开发实习,三亚百度推广公司电话,门户网站案例,杭州网站建设的公司在众多HTML5规范中,有一部分规范是跟文件处理有关的,在早期的浏览器技术中,处理小量字符串是js最擅长的处理之一。但文件处理,尤其是二进制文件处理,一直是个空白。在一些情况下,我们不得不通过Flash/Activ…

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

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

总览

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

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

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

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

◆ 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.lastModifiedDate // 只读属性,最后文件修改时间

FileReader方法

#FileReader.readAsArrayBuffer(blob/file)   //将读取结果 封装成 ArrayBuffer ,如果想使用一般需要转换成 Int8Array或DataView
#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控件,读取其中的第二个文件,并将其文本内容在控制台输出

var input = document.querySelector('input[type="file"]'); // 找到第一个file控件  
var firstFile = input.files[0]; // file控件的files特性其实就是一个FileList类型的对象  
var secondFile = input.files[1]; // 当file控件的multiple特性为true时,我们可以同时选择多个文件,通过input.files[n]可以按序访问这些文件  
var reader = new FileReader(); // 新建一个FileReader类型的对象  
reader.readAsText(secondFile); // 按文本格式读取file控件中的第二个文件  
reader.onloadend = function (e) { // 绑定读取操作完成的事件  console.log(reader.result); // 取得读取结果并输出  
}; 

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

var size = file.size; // 先取得文件总字节数  
var result = file.slice(3, size - 3); // 用slice方法去掉开头的3个字节 

最后,对FileAPI实践的注意

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

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

更多:

HTML5 FileAPI读取实例---(一)

HTML5中的二进制大对象Blob(转)

HTML5 File 对象

HTML5 文件域+FileReader 读取文件(一)

HTML5 FileReader读取Blob对象API详解

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

http://www.lbrq.cn/news/1467163.html

相关文章:

  • 学做招投标的网站有哪些/上海小红书seo
  • 深圳网站建设流程/如何建立一个自己的网站啊
  • 蕲春做网站/网络营销理论基础有哪些
  • 建设网站是普通办公吗/windows优化大师是电脑自带的吗
  • j2ee 建设简单网站/推广普通话作文
  • 山东恒昆建设工程有限公司网站/免费有效的推广平台
  • 网站页面设计最宽可做多宽/互联网平台公司有哪些
  • 企业网站怎么优化/定制化网站建设
  • wordpress div属性/快速优化seo软件推广方法
  • 深圳东莞网站开发/优化设计
  • 做服装批发网站/汕头网站排名优化
  • 靠谱的做任务赚钱网站/搜索引擎营销的实现方法有哪些
  • 国内专门做旅游攻略的网站/香港百度广告
  • 企业网站素材/百度网页广告怎么做
  • 曲阜建设公司网站/seo教学网seo
  • 昌平区住房和建设委员会官方网站/电商网站建设步骤
  • 湛江免费网站制作/b站推广网站2023
  • 张家港网站建设培训学校/新华传媒b2b商务平台
  • 中国招聘网/做网站怎么优化
  • 百度该网站无法进行访问阿里云/网络软文广告
  • 网站服务器知识/病毒营销案例
  • 济南网站建设网站/百度推广怎么优化
  • 网龙网络有限公司/seo排名优化教学
  • 开封网站制作公司/徐州网站建设方案优化
  • ssm网站开发视频/网络推广文案有哪些
  • 完善网站通讯员队伍建设/成都网站建设
  • 攀枝花建设规划网站/青岛百度网站排名优化
  • 作为一个大学生网站 应该怎么做/农村电商平台
  • 茶山网站建设公司/口碑营销案例有哪些
  • 微信公众号直接链接网站怎么做/百度收录怎么做
  • Oracle 11g RAC集群部署手册(三)
  • 个人电脑部署私有化大语言模型LLM
  • LLM Prompt与开源模型资源(2)提示工程关键技术
  • systmctl的作用,使用场景和用法
  • 《秋招在即!Redis数据类型面试题解析》
  • SpringBoot+SpringAI打造智能对话机器人