广告
返回顶部
首页 > 资讯 > 前端开发 > html >JS中File和Blob的概念是什么
  • 417
分享到

JS中File和Blob的概念是什么

2024-04-02 19:04:59 417人浏览 八月长安
摘要

本文小编为大家详细介绍“js中File和Blob的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS中File和Blob的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学

本文小编为大家详细介绍“js中File和Blob的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS中File和Blob的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

File / Blob 是什么

Blob 是最原始的文件对象,File 是基于 Blob 改造的,因此 Blob 的属性/方法在 File 中同样可以使用,你可以理解为 File === Blob,像 input 选择文件后会返回的文件信息就是属于 File

怎么操作 File / Blob

JS 提供的 FileReader 、URL.createObjectURL() 都可以处理 File / Blob

FileReader

FileReader 可以用来读取 File / Blob , input 选择上传文件时比如是一张图片 File ,那么我们可以传递这个 File 到 FileReader 提供相关的 api 来转成对应的数据

FileReader APi

reader.readAsDataURL(file || blob) 转成 base64

reader.readAsArrayBuffer(file || blob) 转成缓冲数组

reader.readAsText(file || blob) 转成文本

reader.readAsBinaryString(file || blob) 转成字节

我们来看看 demo

<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <title></title>

</head>

<body>

  <input type="file" onchange="onChange(event)" />

  <script type="text/javascript">

   // 文件上传后的回调

   function onChange(event) {

   // 接受 input 传递过来的 File,这里返回的数组,我们取第一个就好。

   const file = event.target.files[0]

   // 开始利用 FileReader 操控 File

   const reader = new FileReader()

   // 开始转成 base64

   reader.readAsDataURL(file)

   // 转成base64 后 可通过 onload 来获取

   reader.onload = (res) => {

   console.log(res.target.result) // base64

   }

   }

  </script>

</body>

</html>

控制台打印出 base64

拿到 base64 后就可以做你想做的事情了,比如放到 img.src 或粘贴到浏览器访问

URL.createObjectURL()

URL.createObjectURL() 可以将 File / Blob 转成一个 url 访问链接,

格式类似为:blob:wer3-werwr3-wer-qweq5-eedee 这样的字符串,你可以放到 img.src 或粘贴到浏览器访问,我们来看看 demo

<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <title></title>

  <style type="text/CSS">

  </style>

</head>

<body>

  <input type="file" onchange="onChange(event)" />

  <script type="text/javascript">

   // 文件上传后的回调

   function onChange(event) {

   // 接受 File

   const file = event.target.files[0]

   // 生成 url

   console.log(URL.createObjectURL(file))

   }

  </script>

</body>

</html>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

base64 和 blob:url 应用场景

base64 通常用于图片展示、图片预览

blob: url 通常用于分块上传、点击链接文件下载、生成 pdf 等、

手动创建 Blob

由于选择 input 文件会自动返回 File,这里就以创建 Blob 为例,

我们可以将对象数据放到 Blob 里面然后生成 blob:url || base64 || 文本数据

我们来看下 demo

const obj = {name: 'Jack'}

// 将数据放到 blob

const blob = new Blob([JSON.stringify(obj , null, 2)], {type : 'application/json'});

// 转成 base64

const reader = new FileReader()

reader.readAsDataURL(blob)

reader.onload = (res) => {

  console.log(res.target.result)

}

// 转成 url

console.log(URL.createObjectURL(blob))

// 直接读取文本(创建 blob 会返回一个 promise ,所以我们可以用 await 来获取)

console.log(await blob.text())

好了,内容就到这里,相信你已经对 FIle / Blob 基本概念有所了解。

Note

生成的 base64 和 url 并不是持久化,它们只是存在内存中,当你关闭文档后会自动从内存中删掉,因此你不可以将它们放到 localStore 或服务器中。

读到这里,这篇“JS中File和Blob的概念是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网html频道。

--结束END--

本文标题: JS中File和Blob的概念是什么

本文链接: https://www.lsjlt.com/news/96476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS中File和Blob的概念是什么
    本文小编为大家详细介绍“JS中File和Blob的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS中File和Blob的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2022-10-19
  • js异步电脑概念是什么
    这篇文章主要介绍“js异步电脑概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js异步电脑概念是什么”文章能帮助大家解决问题。1、如果调用者在函数返回时无法获得预期的结果,但在未来需要通过一...
    99+
    2023-06-30
  • jquery中$的概念是什么
    这篇文章主要讲解了“jquery中$的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery中$的概念是什么”吧! ...
    99+
    2022-10-19
  • react中antd和dva的概念是什么
    今天小编给大家分享一下react中antd和dva的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • oltp和olap的概念是什么
    OLTP(在线事务处理)和OLAP(在线分析处理)是数据处理领域中常用的两个概念。OLTP是指用于处理实时事务的数据库和系统。它主要...
    99+
    2023-10-12
    oltp olap
  • php和html的概念是什么
    本篇内容主要讲解“php和html的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php和html的概念是什么”吧! PH...
    99+
    2022-10-19
  • asp和javascript的概念是什么
    本篇内容主要讲解“asp和javascript的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“asp和javascript的概念是什么”吧! ...
    99+
    2022-10-19
  • docker和jenkins的概念是什么
    这篇文章主要讲解了“docker和jenkins的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker和jenkins的概念是什么”吧! ...
    99+
    2022-10-19
  • span和div的概念是什么
    这篇“span和div的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“span和...
    99+
    2022-10-19
  • python和jquery的概念是什么
    这篇文章主要介绍“python和jquery的概念是什么”,在日常操作中,相信很多人在python和jquery的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”py...
    99+
    2022-10-19
  • css和html5的概念是什么
    这篇“css和html5的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css和...
    99+
    2022-10-19
  • javase和JavaScript的概念是什么
    这篇文章主要介绍了javase和JavaScript的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javase和JavaScript的概念是什么文章都会有所收获,下...
    99+
    2022-10-19
  • thinkphp和smarty的概念是什么
    本篇内容主要讲解“thinkphp和smarty的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp和smarty的概念是什么”吧!thinkphp是一个开源轻量级PHP框...
    99+
    2023-07-02
  • php和jsp的概念是什么
    今天小编给大家分享一下php和jsp的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP的中文意思为“超文本预处...
    99+
    2023-07-02
  • 为什么JS会有原型的概念
    这篇文章主要介绍“为什么JS会有原型的概念”,在日常操作中,相信很多人在为什么JS会有原型的概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么JS会有原型的概念”的疑惑...
    99+
    2022-10-19
  • linux中gnu的概念是是什么
    GNU是一种自由和开放源代码的操作系统,其全称为“GNU's Not Unix”。GNU项目由理查德·斯托曼(Richard Sta...
    99+
    2023-09-22
    linux
  • Spring中AOP的概念是什么
    这篇文章主要介绍“Spring中AOP的概念是什么”,在日常操作中,相信很多人在Spring中AOP的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring中AOP的概念是什么”的疑惑有所帮助!...
    99+
    2023-07-02
  • golang中map的概念是什么
    本文小编为大家详细介绍“golang中map的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang中map的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在golang中,map是一种...
    99+
    2023-07-04
  • php中strsplt的概念是什么
    本文小编为大家详细介绍“php中strsplt的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“php中strsplt的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在php中,strsplt...
    99+
    2023-06-30
  • linux中rss的概念是什么
    本文小编为大家详细介绍“linux中rss的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux中rss的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux中,rss全称“Resi...
    99+
    2023-06-30
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作