JavaScript中URL和Blob

JavaScript中URL和Blob

常用于处理文件数据、图像数据、音频数据等。Blob对象通常用于在客户端处理文件,如上传文件、下载文件、处理图像等操作。Blob对象可以通过Blob构造函数创建,也可以通过其他方式获取,比如从File对象中获取。

使用场景

  • 文件上传:将用户选择的文件转换为Blob对象,然后通过Ajax请求将Blob对象发送到服务器。
  • 文件下载:将服务器返回的文件数据转换为Blob对象,然后通过URL.createObjectURL()生成下载链接,供用户下载。
  • 图片处理:将图片文件转换为Blob对象,然后可以进行压缩、裁剪等操作。
  • 音频视频处理:处理音频、视频文件时,也可以使用Blob对象来操作二进制数据。

相关API

  1. slice(start, end, contentType):从Blob对象中提取指定范围的数据,返回一个新的Blob对象。参数start和end分别表示提取数据的起始和结束位置(单位为字节),contentType是可选的,表示新Blob对象的MIME类型。
javascript 复制代码
const blob = new Blob(["Hello, world!"]);
const slicedBlob = blob.slice(0, 5, "text/plain");
  1. size:返回Blob对象的大小,单位为字节。
javascript 复制代码
const blob = new Blob(["Hello, world!"]);
console.log(blob.size); // 输出 13
  1. type:返回Blob对象的MIME类型。
javascript 复制代码
const blob = new Blob(["Hello, world!"], { type: "text/plain" });
console.log(blob.type); // 输出 "text/plain"
  1. arrayBuffer():将Blob对象转换为ArrayBuffer对象。
javascript 复制代码
const blob = new Blob(["Hello, world!"]);
blob.arrayBuffer().then(arrayBuffer => {
    // 处理ArrayBuffer对象
});

注意事项

如果不想再使用这个对象。可以调用URL.revokeObjectURL(你的url),最好在不使用时候就释放,减少占用资源

相关推荐
weedsfly42 分钟前
还在用 Axios?你可能需要重新理解 XHR 与 Fetch
前端·javascript·面试
CoderWeen44 分钟前
从零实现一个 Vue3 流程图编辑器:节点拖拽、贝塞尔连线与框选
前端·javascript
To_OC11 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
kyriewen15 小时前
我用 50 行代码重写了 React Router 核心,终于搞懂了前端路由原理
前端·javascript·react.js
Asize18 小时前
HTML5 Canvas 基础:从按帧动画到 ECharts 数据可视化
前端·javascript·canvas
默_笙18 小时前
🎄 后端给我一堆扁平数据,我 10 行代码把它变成了树
前端·javascript
前端Hardy18 小时前
又一个 AI 神器火了!
前端·javascript·后端
PBitW18 小时前
GPT训练我的第二天,我表示不过如此!!!😕😕😕
前端·javascript·面试
kyriewen20 小时前
白宫直接给 OpenAI 下了限制令,GPT-5.6 不能随便放出来了
前端·javascript·面试
默_笙1 天前
🍞 我用 CSS 画了一个会转的 3D 立方体,同事以为我学了 Three.js(这节课真的很神奇,我很喜欢)
javascript