JavaScript Blob

javascript里面的blob和worker 阅读详情

JavaScript Blob

Blob(Binary Large Object)对象是JavaScript中的一个用于表示不可变的、原始数据的类。Blob 表示的数据不一定是JavaScript原生的,它可以是图片、音频、视频、文件等二进制数据。Blob 对象提供了一种处理这种二进制数据的方式,而不需要将其转换为字符串,这样可以减少数据转换时的性能损耗和可能的数据损坏问题。

1. 创建Blog

纯文本

new Blob(['hello world'], {type: 'text/plain'})

JSON

new Blob([JSON.stringify({name: 'yimt', age: 123})], {type: 'application/json'})

字节数组

const uint8Array = new Uint8Array(3);
for (let i = 0; i < uint8Array.length; i++) {
    uint8Array[i] = 0x61 + i
}
const blob = new Blob([uint8Array], {type: 'application/octet-stream'})

2. 读取Blob

使用FileReader类

// 创建测试blob
const blob = new Blob(['hello world'], {type: 'text/plain'})
// 创建FileReader
const reader = new FileReader()
// 监视加载完成事件
reader.onloadend = function (e) {
    console.log(e.target.result)
}
// 指定读取对象
reader.readAsText(blob)

使用text方法(读取字符串)

const blob = new Blob(['hello world'], {type: 'text/plain'})
console.log(await blob.text())

使用arrayBuffer方法(读取字节)

// 创建Uint8Array
const uint8Array = new Uint8Array(3)
// 初始化数据为abc
for (let i = 0; i < uint8Array.length; i++) {
    uint8Array[i] = 0x61 + i
}

// 创建Blob
const blob = new Blob([uint8Array], {type: 'application/octet-stream'})
// 读取字节
const arrayBuffer = await blob.arrayBuffer()
// 字节转字符串
const decoder = new TextDecoder('UTF-8')
const msg = decoder.decode(arrayBuffer)
console.log(msg) // abc

3. 下载

// 创建测试blob
const blob = new Blob(['hello world'], {type: 'text/plain'})
// 创建一个指向这个Blob的URL
const url = URL.createObjectURL(blob)

const a = document.createElement('a')
a.href = url
a.download = 'example.txt'
a.click()

// 释放创建的URL对象
URL.revokeObjectURL(url)

4. 参考

JavaScript - 判断检查是否为 Blob 对象 前言 对于值类型,你可以通过typeof进行判断,string/number/boolean都很清楚,但是在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象还是数组,更不知道是newNumber等等。 由于Blob对象也属于Object对象类型,所以不能通过以下方式进行检查: varMyBlob=newBlob(['testtext'],{type:'text/plain'}); console.log(typ 阅读详情

相关推荐

理解 JavaScript 中的 blob

Blob(二进制大型对象)是 JavaScript 中的不可变对象,表示原始的、未处理的数据。JavaScript 是一种强大而灵活的语言,提供了许多功能,使其成为客户端 Web 开发的主要内容。其中一个功能是 Blob 对象,它是一种基本数据类型,在处理二进制数据时起着至关重要的作用。数据部分的数组:这可以是简单的字符串数组、ArrayBuffer(ArrayBufferView类型化数组)、Blob 对象或上述任何内容的混合。选项对象:这是可选的,可用于指定数据的 MIME 类型。

我的博客,不一样的自我表达 758

javascript 常见判断

对象的字符串表示形式。 var toString = Object.prototype.toString; isString 判断给定的值是否为字符串类型。如果是范围true,否则返回false。 function isString(val) { return typeof val === 'string'; } isNumber 判断给定的值是否为数字类型。如果是范围true,否则返回f...

infotw的博客 4544

前端数据导出至Excel的JavaScript库:Blob.js与Export2Excel.js

在现代Web开发中,将数据导出到Excel文件是一项常见需求。为了简化这一过程,开发者们经常利用Blob.js和Export2Excel.js这两个强大的JavaScript库。Blob.js主要负责在客户端创建和处理二进制大对象(Blob),而Export2Excel.js则利用Blob.js将数据导出为Excel格式文件。本章将介绍这两个库的基本功能和它们如何协同工作。Export2Excel.js 还提供了一系列高级功能,如自定义样式和格式。开发者可以通过autoFormat。

weixin_35307279的博客 1335

js Blob对象

Blob Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在 JavaScript 中 Blob 类型的对象表示不可变的类似文件对象的原始数据。 为了更直观的感受 Blob 对象,我们先来使用 Blob 构造函数,创建一个 myBlob 对象,具体如下图所示: size 属性用于表示数据的大小(以字节为单位) type 是 MIME 类型的字符串。text/html、image/p

weixin_43294560的博客 8415

is-blob:检查值是否为Blob

斑点 检查值是否为不可变的原始数据的类似文件的对象 Blob仅在浏览器中可用。 在Node.js中,它总是返回false 。 安装 $ npm install is-blob 用法 const isBlob = require ( 'is-blob' ) ; isBlob ( new Blob ( [ '<h1>Unicorns</h1>' ] , { type : 'text/html' } ) ) ; //=> true 有关的 -输入检查值

RK3568开发板Debian系统屏幕旋转终极指南:从临时调整到永久设置

本文提供了RK3568开发板在Debian系统下实现屏幕旋转的完整解决方案。从使用xrandr命令进行临时调整,到修改X11配置文件实现永久设置,详细讲解了操作步骤与核心原理。指南还涵盖了多屏异显配置、触摸屏坐标校准等进阶技巧,帮助开发者彻底解决显示方向问题。

weixin_29181861的博客 389

Blob文件对象

Blob 提供了一种高效的方式来操作数据文件,而不需要将数据全部加载到内存中,这在处理大型文件或二进制数据时非常有用。File 是 Blob 的子类,File 对象除了具有 Blob 的所有属性和方法之外,还包含文件的元数据,如文件名和修改日期。Blob 是纯粹的二进制数据,它可以存储任何类型的数据,但不具有文件的元数据(如文件名、最后修改时间等)。File 对象继承了 Blob 对象的方法,因此可以使用一些 Blob 对象的方法来处理文件数据。对象,包含文件的元数据(如文件名、文件大小、类型等)。

fmk1023的博客 1673

Plant simulation、Flexsim、Automod、Emulate3D、VisuaComponent仿真软件对比

E3D在行业内以展示效果好,入门阶段易学易用人机界面友好,电控仿真连接方便不需要借助其他第三方软件,E3D平台开放度较高用户DIY程度强,数据分析功能针对要评定对象的KPI的可根据项目或者使用者需求进行评定。3.支持导入导出多种格式的文件,比如dwg、dxf、fbx、obj、3ds、step、stp、iges、skp、stl、wrl、 bmp 等等。3.软件自带模型组件库程序代码开放,用户可以引用、修改、拷贝,按照自己的逻辑修改模型,或者创建模型并保存到组件库与别人共享。3. 支持导出布局图片。

qq_43342303的博客 3577

js blob

在Web中,Blob类型的对象表示不可变的类似文件对象的原始数据,通俗点说,就是Blob对象是二进制数据,但它是类似文件对象的二进制数据,因此可以像操作File对象一样操作Blob对象,实际上,File继承自Blob。end: 可选,代表的是 Blob 的一个下标,这个下标-1的对应的字节将会是被拷贝进新的Blob 的最后一个字节。start: 可选,代表 Blob 里的下标,表示第一个会被会被拷贝进新的 Blob 的字节的起始位置。contentType: 可选,给新的 Blob 赋予一个新的文档类型。.

tsqjxy的博客 1418

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1401

V93000 SmarTest 8入门:从零搭建你的第一个半导体测试程序

半导体测试是芯片从设计走向量产的关键环节,而ATE(自动化测试设备)正是支撑这一环节的核心工具。理解ATE测试程序开发的基本原理,不仅需要掌握测试机台的硬件架构,还要熟悉其软件环境中的管脚映射、电平时序、测试流程等底层逻辑。V93000作为爱德万的主力平台,其SmarTest 8环境通过对象化与流程化设计,将复杂的芯片测试任务拆解为可配置、可复用的模块,极大提升了并行测试效率与调试的便利性。无论是数字逻辑芯片的功能验证,还是模拟混合信号器件的参数测量,掌握SmarTest 8的核心操作都能帮助你快速搭建出可

weixin_31476015的博客 239

js发送blob php接收,javascript如何上传blob?

我无法使用上面的示例来处理blob,我想知道upload.php到底是什么。所以你走了:(仅在Chrome 28.0.1500.95中测试过)//javascriptfunctionthatuploadsablobtoupload.phpfunctionuploadBlob(){//createablobherefortestingvarblob=newBlo...

weixin_30456235的博客 402

深入解析Xilinx IDELAYE2在FPGA时序优化中的关键作用与实战配置

本文深入解析了Xilinx FPGA中IDELAYE2模块在时序优化中的关键作用。作为精密的信号延时微调器,IDELAYE2通过可编程的抽头延迟,有效解决高速接口中数据与时钟的相位偏差问题。文章详细阐述了其必须与IDELAYCTRL配对使用的核心机制,并对比分析了FIXED、VARIABLE和VAR_LOAD三种工作模式的实战配置方法与代码示例,为FPGA工程师提供了解决时序收敛难题的关键硬件配置指南。

pear55的博客 1183

js blob php_javascript 实现blob加密视频(html video),服务端为php

现在大部分的网站视频链接都是 blob:http://......例如: 出于好奇,研究了一番其实这种是 视频mp4格式转码m3u8格式 再分为多个小切片(多个小视频)结合 video.js 实现,这里我们讨论 如何把一个mp4地址加密为 blob链接在html5的 video标签展示先直接贴上我的代码,下面为html video标签下面为 javascript代码function rev...

weixin_35607472的博客 798

STM32F407编译下载全流程:从CubeMX到HEX烧录

嵌入式固件开发中,编译与下载是连接代码与硬件的关键闭环。其本质是将高级语言描述的逻辑,经交叉编译(ARM GCC)、链接(ELF生成)、格式转换(HEX/BIN)后,通过调试接口(SWD/UART)写入MCU Flash存储器的过程。该流程涉及工具链协同、二进制格式特性(如Intel HEX的地址映射与无元数据设计)、启动模式(System Memory Bootloader)、Flash选项字节(RDP/WRP)等底层机制,直接决定固件可运行性与安全性。典型应用场景包括STM32F407开发板调试、量产固

weixin_28840811的博客 259

【雷达】基于matlab合成孔径雷达干涉测量(InSAR)时序分析【含Matlab源码 9037期】

合成孔径雷达干涉测量(InSAR)时序分析 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 159

JavaScript中的Blob你知道多少

很多开发者可能用过Blob,但是却并没有认真了解过Blob是什么?Blob的API有哪些?我们什么时候会用到Blob? 下面跟我一起详细了解下Blob吧~ 一、Blob 是什么 Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在JavaScript中 Blob 类型的对象表示不可变的类似文件对象的原始数据。为了更直观的感受 Blob 对象,我们先来使用 Blob 构造函数,...

txun123的博客 1万+

R数据分析:潜在剖面分析LPA的做法与解释

Latent Profile Analysis (LPA) tries to identify clusters of individuals (i.e., latent profiles) based on responses to a series of continuous variables (i.e., indicators). LPA assumes that there are unobserved latent profiles that generate patterns of resp.

Codewar的博客 1万+

html5 blob对象,JavaScript中的Blob对象

经常看到一些视频的地址是blob://xxxxxxx这种形式,比较好奇,本篇文章就是聊一些浏览器中Blob对象的一些内容。以下内容全文转载自:https://github.com/pfan123/code-snippet/issues/10一直以来,JS都没有比较好的可以直接处理二进制的方法。而Blob的存在,允许我们可以通过JS直接操作二进制数据。Blob对象一个Blob对象表示一个不可变的, ...

weixin_36250200的博客 871

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JavaScript 的Blob 对象详解

引言浩瀚的互联网海洋中,数据的传输与存储扮演着至关重要的角色。如何高效、便捷地处理二进制数据,是前端开发人员面临的永恒挑战。问题在传统的 JavaScript 中,处理二进制数据是一项繁琐且容易出错的工作。我们需要使用各种各样的 API 和工具,才能将二进制数据转换为文本、图像、音频等格式。解决方案Blob 对象的出现,为我们带来了新的希望。它提供了一种简单、统一的方式来处理二进制数据,极大地简化了开发人员的工作。本文目标本文旨在深入剖析 Blob 对象,为你揭开它的神秘面纱。

爱蹦跶的全栈大A阿 3714

JS——blob

1、【HTML5】Blob对象 (1)写在前面:本小节主要介绍Blob对象属性及作用,通过demo介绍blob对象的应用场景。 blob对象:一直以来,JS都没有比较好的可以直接处理二进制的方法。而blob的存在,允许我们可以通过js直接操作二进制数据。 “一个blob对象就是一个包含有只读原始数据的类文件对象。blob对象中的数据并不一定得是JavaScript中的原生形式。file接口...

盏茶作酒的博客 6583

js中blob转string、string转blob、typeArray转blob、blob转TypeArray

这里写目录标题将String字符串转换成Blob对象将TypeArray 转换成 Blob 对象ArrayBuffer转Blob将Blob对象转换成String字符串将Blob对象转换成ArrayBuffer 将String字符串转换成Blob对象 //将字符串 转换成 Blob 对象 var blob = new Blob(["Hello World!"], { type: 'text/plain' }); console.info(blob); console.info(blob.slice(

high32的博客 2万+

js blob php_js发送blob数据, php端接收blob数据

服务器环境CentOs7.4 php7print_r($_FILES)blob结构如下Array([blob] => Array([name] => blob[type] => image/jpeg[tmp_name] => /tmp/phpu37qnN[error] => 0[size] => 1175745))很纳闷这个结构为什么没有图片数据流,只有...

weixin_34646820的博客 431

js Blob、ArrayBuffer

我们知道script/img/video/iframe等标签的src属性和background的url可以通过url和base64来显示,我们同样可以把blob或者file转换为url生成BlobURL来展示图像,由于可以将其用作URL的替代,因此DataURL和BlobUrl一样可以在script/img/video/iframe等标签的src属性和background的url中使用,用法与BlobUrl基本一致。,它是 JavaScript 中的一个对象,表示原始的类似文件的数据。

qq_30436011的博客 1362

js-Blob浅析

js-Blob浅析 目录 文章目录前言推荐阅读文件作为`Blob``index.html` - `input`上传文件`js`下载`Blob`构造`Blob``Blob URL``index.html``blobFiles.js`读取`Blob` - `FileReader`使用`FileReader`读取文本文件 前言 Blob: 可以存储到数据库 postMessage发送到其他窗口和worker XMLHttpRequest的send方法 createObjectURL()获取特殊的blob://

莫兮的博客 684

js blob对象互转

什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型。 oracle 中也有类似的栏位类型。 在 [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际上 file 对象只是 blob 对象的一个更具体的版本,blob 存储着大量的二进制数据,并且 blob 的 size 和 type 属性,都会被 file 对象所继承。 所以, 在...

tangcc的博客 3万+
上一篇: Docker 常用配置
下一篇: Amazon Linux 2023 安装 Docker
yimtcode
博客等级 码龄6年 205粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yimtcode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值