前端培训-中级阶段(20)- 文件API(FileReader)(2019-10-10期)

简介: 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。最常见的效果有 图片上传预览、类型检查、文件大小检查。

File



File 继承了 Blob ,可以用于任意需要 Blob 类型的方法中,比如FileReader()URL.createObjectURL()XMLHttpRequest.send() 这些方法。


bVbyHAa.webp.jpg


File 对象属性


  1. lastModified 返回当前 File 对象所引用文件最后修改时间,自 UNIX 时间起始值(1970年1月1日 00:00:00 UTC)以来的毫秒数。


  1. name 返回当前 File 对象所引用文件的名字。


  1. size 返回文件的大小(单位为字节)。size/1024KB,size/1024/1024MB


  1. type 返回文件类型如 "image/png"


File 构造函数


file = new File(bits, name[, options]);


  1. bits:ArrayBufferArrayBufferViewBlobArray。是 UTF-8 编码的文件内容。


  1. name: 表示文件名称


  1. options.type: 表示将要放到文件中的内容的 MIME 类型。默认值为 "" 。


  1. options.lastModified: 表示文件最后修改时间的 Unix 时间戳(毫秒)。默认值为 Date.now()。


bVbyHDG.webp.jpg


FileReader



Blob类型的数据,只可以通过FileReader来读取。

读取内容的方法都是异步,如果成功结果会放入result属性中。


读取方法(都是异步)


  1. readAsArrayBuffer() 以 ArrayBuffer 表示所读取的文件内容
    可以更方便做计算,比如加密解密


  1. readAsBinaryString() 以 原始二进制 表示所读取的文件内容
    很少用


  1. readAsDataURL() 以 data: URL格式的 Base64 字符串 表示所读取文件的内容
    常用于图片文件,展示或其他用途


  1. readAsText() 以 字符串 表示所读取的文件内容。
    如果是纯文本文件,使用这个即可。


事件回调


  1. onabort 读取操作被中断时触发(FileReader.abort()


  1. onerror 读取操作发生错误时触发


  1. onload 读取操作完成时触发
    这个时候 filesReader.result 中就有值了


  1. onloadstart 读取操作开始时触发


  1. onloadend 读取操作结束时(要么成功,要么失败)触发


  1. onprogress 进度


Blob


Blob 对象表示一个不可变、原始数据的类文件对象。


Blob 表示的不一定是JavaScript原生格式的数据。


File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。


实践一下



表单选择 input


效果传送门


经常用在上传文件中,我们监听inputchange事件。


通过files属性来获取(因为input可以通过multiple来选择多个文件)


bVbyHVb.webp.jpg


粘贴


粘贴需要监听 paste 事件,通过获取事件的Event对象e.clipboardData.files来获取所有的文件对象


bVbyHY4.webp.jpg


拖拽


拖拽需要监听drop事件,并阻止默认事件(不阻止会使用浏览器打开),通过获取事件的Event对象e.dataTransfer.files来获取所有的文件对象


bVbyH1C.webp.jpg


总结



  1. File 继承了 Blob


  1. Blob 只可以使用 FileReader 来读取内容


  1. input 使用 e.target.files来获取


  1. 粘贴 使用 e.clipboardData.files 来获取


  1. 拖拽 使用 e.dataTransfer.files 来获取


  1. FileReader 获取内容是异步的,需要监听onload之后拿result
相关文章
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
2月前
|
前端开发 JavaScript Java
前端限制打包文件数量
前端限制打包文件数量
179 65
|
2月前
|
前端开发
前端引入字体文件
文章介绍了如何在前端项目中引入字体文件,并展示了具体的HTML和CSS代码示例,包括如何使用`@font-face`规则来定义字体和在页面中应用自定义字体。
67 1
前端引入字体文件
|
2月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
86 2
|
2月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
79 2
前端JS读取文件内容并展示到页面上
|
2月前
|
前端开发
前端diff文件对比使用worker进行优化
如何使用Web Worker在React项目中优化文件对比差异功能的实现。
42 5
|
30天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
138 0
|
30天前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
123 0
|
30天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
150 0
|
2月前
|
XML 缓存 JavaScript
提升对前端的认知,不得不了解Web API的DOM和BOM
该文章强调了在前端开发中理解和掌握DOM(文档对象模型)和BOM(浏览器对象模型)的重要性,并介绍了它们的相关操作和应用。
提升对前端的认知,不得不了解Web API的DOM和BOM

热门文章

最新文章