用来把文件读入内存,并且读取文件中的数据。

FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据

FileReader接口的方法
方法名 参数 描述
readAsBinaryString file 将文件读取为二进制编码
readAsText file,[encoding] 将文件读取为文本
readAsDataURL file 将文件读取为DataURL
abort (none) 终端读取操作

无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。

FileReader接口的事件
事件 描述
onabort 中断
onerror 出错
onloadstart 开始
onprogress 正在读取
onload 成功读取
onloadend 读取完成,无论成功失败

FileReader接口的使用

  1. <p>
  2. <label>请选择一个文件:</label>
  3. <input type="file" id="file" />
  4. <input type="button" value="读取图像" οnclick="readAsDataURL()" />  //读取图像
  5. <input type="button" value="读取二进制数据" οnclick="readAsBinaryString()" />  //读取二进制数据
  6. <input type="button" value="读取文本文件" οnclick="readAsText()" />  //读取文本文件
  7. </p>
  8. <div id="result" name="result"></div>
  1. var result=document.getElementById("result");
  2. var file=document.getElementById("file");
  3. //判断浏览器是否支持FileReader接口
  4. if(typeof FileReader == 'undefined'){
  5. result.InnerHTML="<div>浏览器不支持FileReader接口!</div>";
  6. //使选择控件不可操作
  7. file.setAttribute("disabled","disabled");
  8. }
  9. function readAsDataURL(){
  10. //检验是否为图像文件
  11. var file = document.getElementById("file").files[0];
  12. if(!/image\/\w+/.test(file.type)){
  13. alert("看清楚,这个需要图片!");
  14. return false;
  15. }
  16. var reader = new FileReader();
  17. //将文件以Data URL形式读入页面
  18. reader.readAsDataURL(file);
  19. reader.οnlοad=function(e){
  20. var result=document.getElementById("result");
  21. //显示文件
  22. result.innerHTML='<img src="' + this.result +'" alt="" />';
  23. }
  24. }
  25. function readAsBinaryString(){
  26. var file = document.getElementById("file").files[0];
  27. var reader = new FileReader();
  28. //将文件以二进制形式读入页面
  29. reader.readAsBinaryString(file);
  30. reader.οnlοad=function(f){
  31. var result=document.getElementById("result");
  32. //显示文件
  33. result.innerHTML=this.result;
  34. }
  35. }
  36. function readAsText(){
  37. var file = document.getElementById("file").files[0];
  38. var reader = new FileReader();
  39. //将文件以文本形式读入页面
  40. reader.readAsText(file);
  41. reader.οnlοad=function(f){
  42. var result=document.getElementById("result");
  43. //显示文件
  44. result.innerHTML=this.result;
  45. }
  46. }
  47. </script>

转载于:https://www.cnblogs.com/GoTing/p/6206330.html

毕业论文中使用的技术—FileReader接口相关推荐

  1. d3d(Direct X)中的com技术详解

    本文不会对Com进行非常详细的分析 因为这个技术分析起来难度还是非常大的 要想真正弄懂还是非常困难的 我只会针对d3d中使用到的com技术和comptr技术进行说明 所以看完本文后 可以熟练使用d3d ...

  2. 施工管理在计算机上的应用论文,【计算机专业毕业论文】关于计算机应用技术在工程项目管理中的应用...

    [计算机专业毕业论文]关于计算机应用技术在工程项目管理中的应用 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 [计算机专业毕业论文]关 ...

  3. 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术

    1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...

  4. 先进机器人系统中的关键技术

    先进机器人系统中的关键技术 Key technologies coalesce in advanced robotic systems 就在机器人设计进入商业领域,服务于制造业.物流业和服务业之际,概 ...

  5. 软件架构中的分层技术

    2019独角兽企业重金招聘Python工程师标准>>> 何时使用分层技术? 分层技术实际上是把技术复杂化了.和以往简单的CS结构的系统不同,分层往往需要使用特定的技术平台来实现.当然 ...

  6. 关于在呼叫中心业务中应用语音识别技术的探讨

    关于在呼叫中心业务中应用语音识别技术的探讨 摘要:本文首先给出了语音技术的应用现状,接着对语音识别技术在呼叫中心中可应用可尝试的业务进行探讨,最后提出呼叫中心业务中应用语音识别技术的虚拟CSR概念. ...

  7. Paper:《Hidden Technical Debt in Machine Learning Systems—机器学习系统中隐藏的技术债》翻译与解读

    Paper:<Hidden Technical Debt in Machine Learning Systems-机器学习系统中隐藏的技术债>翻译与解读 导读:机器学习系统中,隐藏多少技术 ...

  8. 7 centos 时钟跟物理机同步_通信网中的同步技术

    同步技术的产生,跟其他技术一样,都是有原因的. 在老久之前的电路交换网络时代,因为电路交换的数据流是恒定的,因此可以很容易地从数据流中恢复出所需要的时钟信息,并保持源和宿之间的同步状态.二是整个报文的 ...

  9. 在电路设计中,这7个接口类型太重要了,我难道不该学学么!

    我们知道,在电路系统的各个子模块进行数据交换时可能会存在一些问题导致信号无法正常.高质量地"流通". 例如有时电路子模块各自的工作时序有偏差(如CPU与外设)或者各自的信号类型不一 ...

最新文章

  1. linux下配置ip地址四种方法(图文)
  2. PHP 连接 MSSQL用port时候的注意事项
  3. 如何在OpenJDK中使用ECC
  4. 普罗米修斯 软件_监控神器-普罗米修斯Prometheus的安装
  5. redis未授权反弹shell
  6. EasyUI:中datagrid数据表格的删除、编辑、保存、撤销功能实现
  7. [Node.js]001.安装与环境配置
  8. nginx搭建视频服务器
  9. 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
  10. 蛋白质ph稳定性计算机模拟,蛋白质分子设计.ppt
  11. 从零开始学习 JD Chain(二)- JD Chain 区块链浏览器
  12. 2022年最好的游戏引擎是什么?
  13. BUPT-CSAPP 2019 Fall 3.58 3.60 3.63
  14. 等高线节点过密如何处理?CASS10.1复合线滤波功能详解
  15. 苹果微信多开_微信双开是什么?是不是需要两个手机号?
  16. 解读Linux零拷贝之mmap
  17. 存储程序的概念将计算机转换为,2015计算机二级office高级应用模拟题及答案(1)...
  18. 大数据24小时:Salesforce拟65亿美元收购Mulesoft,林志颖加盟小黑鱼科技任首席体验官
  19. 科技英语计算机单元答案,科技英语课后练习答案.doc
  20. 短视频源码PHP实现手势密码的方法

热门文章

  1. Activity启动过程剖析
  2. (012) java后台开发之Apache与Tomcat有什么关系和区别
  3. iphone分辨率_目前最值得入手的三款安卓机!流畅度堪比iPhone,用三五年不过时...
  4. Netty之WebSocket和四种IO介绍
  5. Redis总结(五)缓存雪崩和缓存穿透等问题
  6. SQL 解决in的参数烦恼(经典,简洁,高效)
  7. 转载:C++ list 类学习笔记
  8. codeforces B. Eight Point Sets 解题报告
  9. Atitit 桌面软件跨平台gui解决方案 javafx webview
  10. Button中command后面函数添加参数解决方法