位置: 编程技术 - 正文

JavaScript文件处理:文件读取(js的文件操作)

编辑:rootadmin

推荐整理分享JavaScript文件处理:文件读取(js的文件操作),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js文件作用,javascript文件怎么用,js的文件操作,javascript文件怎么用,js文件应该放在什么位置,js文件里面有什么,js的文件操作,javascript文件怎么用,内容如对您有帮助,希望把文章链接给更多的朋友!

在我的前一篇blog中,我介绍了在JavaScript中如何使用文件,具体重点放在如何获得File对象。只有当用户通过上传或者拖拽的方式上传了文件,这些对象才拥有文件的元数据。一旦你有了这些文件,下一步就是从这些文件中读取数据。

FileReader 类型

FileReader类型有一个单一的工作,就是从一个文件中读取数据并存储在一个JavaScript变量中。它的API有意设计得与XMLHttpRequest相同,因为它们都是从一个外部资源(浏览器之外)加载数据。读操作是异步的,这样不会使浏览器堵塞。

FileReader可以创建多种&#;式来表示文件的数据,而当读取文件时返回的&#;式是必须的。读取操作是通过调用下面任一方法来完成的:

readAsText() – 使用纯文本的形式返回文件内容readAsBinaryString() – 使用加密二进制数据字符串的形式来返回文件内容(该方法已废弃,请使用readAsArrayBuffer()代替)readAsArrayBuffer() – 使用ArrayBuffer的形式来返回文件内容(对二进制数据比如图像文件有用)readAsDataURL() – 使用数据URL的形式返回文件内容

像XHR对象的send方法会发起一个Http请求一样,上面的每个方法都会启动一个文件读取。就这一点来说,在开始读取之前,你必须监听load事件,event.target.result总是返回读取的结果。例如:

var reader = new FileReader();reader.onload = function(event) { var contents = event.target.result; console.log("File contents: " &#; contents);};reader.onerror = function(event) { console.error("File could not be read! Code " &#; event.target.error.code);};reader.readAsText(file);

在这个例子中,我们简单地读取文件内容,并将内容以纯文本的形式输出到console。当文件被成功读取时会调用onload操作,而因为某些原因无法读取时会调用onerror操作。在事件处理器中可以通过event.target来获得FileReader实例,而且它推荐这样使用,而不是直接使用reader变量。result属性包含读取成功时的文件内容和读取失败时的错误信息。

读取数据URIJavaScript文件处理:文件读取(js的文件操作)

你可以用差不多的方法来将文件读取为一个数据URI,数据的URI(有时也叫数据URL)是个有趣的选项,比如你想要显示从磁盘上读取的图像文件,你可以用下面的代码这样做:

var reader = new FileReader();reader.onload = function(event) { var dataUri = event.target.result, img = document.createElement("img"); img.src = dataUri; document.body.appendChild(img);};reader.onerror = function(event) { console.error("File could not be read! Code " &#; event.target.error.code);};reader.readAsDataURL(file);

这段代码简单地在页面上插入一个从磁盘上读取来的图像文件。因为这个数据URI包含了图像的所有数据,所以它可以被直接传给图像的src属性,并显示在页面上。你可以交替地加载图像和将其绘制到一个<canvas>上:

var reader = new FileReader();reader.onload = function(event) { var dataUri = event.target.result, context = document.getElementById("mycanvas").getContext("2d"), img = new Image(); // wait until the image has been fully processed img.onload = function() { context.drawImage(img, , ); }; img.src = dataUri;};reader.onerror = function(event) { console.error("File could not be read! Code " &#; event.target.error.code);};reader.readAsDataURL(file);

这段代码将图像数据加载到一个新的Image对象,并将其绘制到一个画布上(宽度和长度都指定为)。

数据URI一般用来做这个,但能用在任何类型的文件上。将文件读取为一个数据URI最普遍的用法是在web页面中快速显示文件内容。

读取ArrayBuffers

ArrayBuffer类型[1]最初是作为WebGL的一部分被引进的。一个Arraybuffer代表一个有限的字节数,可以用来存储任意大小的数字。读取一个ArrayBuffer数据的方式需要一个特定的视图,比如Int8Array是将其中的字节处理为一个有符号的8位整数集合,而FloatArray是将其中的字节处理为一个位浮点数的集合。这些称为类型数组[2],这样可以强制你工作在一个特定的数字类型上,而不是包含任意类型的数据(像传统的数组)。

当处理二进制文件时你可以优先使用ArrayBuffer,这样对数据可以有更细粒度的控制。要解释关于ArrayBuffer的所有ins和outs已经超出本篇blog的范围,你只需要知道在你需要的时候可以很容易地将一个文件读取为一个ArrayBuffer就可以了。你可以直接传一个ArrayBuffer到一个XHR对象的send()方法,发送原始数据到服务器(你会在服务器的请求中读取这个数据去重建文件),只要你的浏览器完全支持XMLHttpRequest Level 2[3](大部分最新的浏览器,包括IE和Opera都支持)。

Fragment中调用onActivityForResult处理 TheactivityhostingthisfragmenthasitsonActivityResultcalledwhenthecameraactivityreturnsMyfragmentstartsanactivityforresultwiththeintentsentforthecameratotakeapicture.Thepictureapplicationloadsfine,take

Android Volley框架的使用(二) 在上一篇文章中介绍了volley框架的特性,如何将volley.jar引入我们的项目,以及volley框架中最常用的两个类RequestQueueRequest基本的使用方法;这篇介绍Volley

android 一个集合问题导致不得不说的故事 啥也不说,先看图,然后给你讲需求!技能中只能添加三项,如果选择超过三个就给提示,选中的可以再次点击就是删除,这个肯定不难,但是做着发现一个问题,

标签: js的文件操作

本文链接地址:https://www.jiuchutong.com/biancheng/374515.html 转载请保留说明!

上一篇:JavaScript简单抽奖程序的实现及代码(js数组随机抽奖)

下一篇:Fragment中调用onActivityForResult处理(fragment的context)

  • 财税2012年15号文件作废
  • 进项留抵转出会计分录
  • 纳税检查调减进项税额主表怎么不显示缴纳税款
  • 防伪税控系统
  • 烟叶增值税税率10%
  • 开普票需要交税多少
  • 幼儿园财务科目设置
  • 简易计税的增值税要计提附加税吗
  • 税务局未核定的印花税
  • 上月做其它应付款本月发票到如何做
  • 如何开增值税专用发票视频
  • 开票没有网络可以开票吗
  • 客运承运人是什么意思
  • 未提供一般纳税人证明
  • 收票据计息利息为什么要红字冲账?
  • 外购货物用于集体福利属于什么
  • 新房购置税怎么算2022
  • 从原材料到库存商品的生产核算过程
  • 金税三期个人所得税税率
  • 个人缴纳物业费怎么开发票
  • 企业个人所得税逾期未申报怎么办
  • 关联企业借款利息扣除
  • 2017小规模纳税人标准
  • 城建税教育费附加和地方教育费附加
  • 未办理外经证如何处罚
  • 股东私人垫支公司支付零星材料的会计分录
  • 合伙企业收到对公转账
  • 可供出售金融资产是指什么
  • 制作广告费用
  • 商贸公司怎么结算成本
  • 幼儿园开发成本
  • 企业所得税的工资薪金包括社保
  • 员工辞退补偿金发放逾期
  • 增值税四个税种
  • 预缴税款怎么做账务处理
  • 如何备份电脑系统到另外一个硬盘
  • Laravel 5.5中为响应请求提供的可响应接口详解
  • php基础入门教程
  • 桌面小工具怎么添加
  • 公司为实习生买保险列支什么科目?
  • 股票公允价值减值怎么做账
  • 税控减免怎么做账
  • php抓取网页图片
  • php获取api内容
  • uniapp和vue混合开发
  • 计提企业所得税是在结转损益后吗
  • canvas软件教程
  • vue中的echarts
  • php+jquery+html实现点击不刷新加载更多的实例代码
  • 增值税进项税额能不能抵扣
  • 装修公司开增值税专用发票几个点
  • 织梦如何使用
  • 哪些人可以享受职业培训补贴
  • 批发和零售业行业代码
  • Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
  • 企业长期零申报
  • 报销差旅费大于预借差旅费会计分录
  • 调整凭证能不能做2个贷方
  • 合作社财政补助平均量化
  • 外出经营预交企业所得税税率
  • 子公司内部交易
  • 合同履约成本的会计分录
  • 没有发票财务报表怎么做
  • 交增值税账务处理
  • 收到委托加工物资发票
  • 银行存款日记账电子表格模板
  • sql server临时表创建语句
  • slmgr.vbs /dli
  • linux数字运算
  • linux如何kill进程
  • win8桌面在c盘的路径
  • jquery获取input内容
  • nodejs webp
  • js实现组件功能
  • js继承的方法
  • 苏州昆山税务局电话号码
  • 财政短信是什么意思
  • 税务局纳税服务工作总结
  • 电子税务局房产税怎么申报
  • 资源税的税目共有七个其中包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设