当前位置:网站首页>Blob 对象介绍
Blob 对象介绍
2022-07-07 04:58:00 【丢丢的大神】
Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。
看下面代码,可以使用文本构造 Blob 对象
var debug = {
hello: "world"};
var blob = new Blob([JSON.stringify(debug, null, 2)], {
type : 'application/json'});
示例:使用 Blob 创建一个指向类型化数组的 URL
var typedArray = GetTheTypedArraySomehow();
var blob = new Blob([typedArray.buffer], {
type: 'application/octet-stream'}); // 传入一个合适的 MIME 类型
var url = URL.createObjectURL(blob);
// 会产生一个类似 blob:d3958f5c-0777-0845-9dcf-2cb28783acaf 这样的 URL 字符串
// 你可以像使用普通 URL 那样使用它,比如用在 img.src 上。
另一种读取 Blob 中内容的方式是使用 Response 对象。
var text = await (new Response(blob)).text();
某些时候后台下载文件返回到前端被转换为 Blob 对象,正常下载时,返回正确的文件流,异常时,后台返回一段包含错误信息的 json ,这时候需要提示用户下载失败,看下面代码
/** * 格式化 blob 返回值 * @param {*} res */
const formatBlobResponse = async (res) => {
const text = await new Response(res).text();
let textObj = {
};
try {
textObj = JSON.parse(text);
} catch (e) {
}
if (text === '' || (textObj.code && Number(textObj.code) !== 200)) {
return {
success: false,
msg: textObj.msg || '下载文件失败,请联系管理员',
};
} else {
return {
success: true,
data: res,
};
}
};
边栏推荐
- Linux server development, MySQL process control statement
- The element with setfieldsvalue set is obtained as undefined with GetFieldValue
- 快速使用 Jacoco 代码覆盖率统计
- 有 Docker 谁还在自己本地安装 Mysql ?
- Recursive method to construct binary tree from preorder and inorder traversal sequence
- 太真实了,原来自己一直没有富裕起来是有原因的
- Avatary的LiveDriver试用体验
- Chip design data download
- Linux server development, detailed explanation of redis related commands and their principles
- Most elements
猜你喜欢
You Li takes you to talk about C language 6 (common keywords)
Li Kou interview question 04.01 Path between nodes
Network learning (III) -- highly concurrent socket programming (epoll)
The zblog plug-in supports the plug-in pushed by Baidu Sogou 360
Myabtis_Plus
【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)
QT learning 28 toolbar in the main window
Few shot Learning & meta learning: small sample learning principle and Siamese network structure (I)
2022年茶艺师(中级)考试试题及模拟考试
Yugu p1020 missile interception (binary search)
随机推荐
mysql多列索引(组合索引)特点和使用场景
Recursive method to construct binary tree from preorder and inorder traversal sequence
Lattice coloring - matrix fast power optimized shape pressure DP
Topic not received? Try this
芯片资料 网站 易特创芯
Minimum absolute difference of binary search tree (use medium order traversal as an ordered array)
Codeforce c.strange test and acwing
Chip design data download
Linux server development, redis source code storage principle and data model
【数字IC验证快速入门】12、SystemVerilog TestBench(SVTB)入门
Rust versus go (which is my preferred language?)
Leanote private cloud note building
Linux server development, MySQL process control statement
[UVM practice] Chapter 2: a simple UVM verification platform (2) only driver verification platform
Qt学习27 应用程序中的主窗口
LeetCode简单题之字符串中最大的 3 位相同数字
Binary tree and heap building in C language
[quick start of Digital IC Verification] 17. Basic grammar of SystemVerilog learning 4 (randomization)
[advanced digital IC Verification] command query method and common command interpretation of VCs tool
Linux server development, MySQL index principle and optimization