new Blob()详解以及blob转file

定义:

Blob() 构造函数返回一个新的 Blob 对象。blob 的内容由参数数组中给出的值的串联组成。

语法:
javascript 复制代码
var aBlob = new Blob( array, options );
参数:

array 是一个由ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array ,或者其他类似对象的混合体,它将会被放进 Blob。DOMStrings 会被编码为 UTF-8。

options 是一个可选的BlobPropertyBag字典,它可能会指定如下两个属性:

type,默认值为 "",它代表了将会被放入到 blob 中的数组内容的 MIME 类型。

endings,默认值为"transparent",用于指定包含行结束符\n的字符串如何被写入。它是以下两个值中的一个:"native",代表行结束符会被更改为适合宿主操作系统文件系统的换行符,或者 "transparent",代表会保持 blob 中保存的结束符不变 非标准

示例:
javascript 复制代码
var aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含 DOMString 的数组  可以是dom 数字 对象 日期等等   都要转成字符串  
//例如: let aFileParts = [JSON.stringify({age:18,sex:'男'})]   
var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // 得到 blob  里面的type是 MIME 类型   也就是 前面内容的格式  需要转成什么类型的格式
blob转file:
javascript 复制代码
 let obj = {
            age: 18,
            sex: '男'
        }
        let content = JSON.stringify(obj)
            // blob类型
        let blob = new Blob([content], {
                type: 'application/json'
            })
            // 将blob转成url
        let url = URL.createObjectURL(blob) //blob:null/244bec7f-e3d3-43d5-803e-f98cc5c8117f  =>链接里面的数据就是右边的内容 {"age":18,"sex":"男"}
        console.log(url)
            //blob转file
        let filename = '文件名'
        var file = new File([blob], filename, {
            type: 'application/json',
            lastModified: Date.now()
        });
        //或者
        var file1 = new File([content], filename, {
            type: 'application/json',
            lastModified: Date.now()
        });
        console.log("文件", file, file1)
相关推荐
MATLAB代码顾问1 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
云水一下1 小时前
从零开始!VMware安装Fedora Workstation 44桌面系统完整教程
前端
万粉变现经纪人2 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
小码哥_常3 小时前
安卓黑科技:实现多平台商品详情页一键跳转APP
前端
清风明月一壶酒3 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
killerbasd3 小时前
还是迷茫 5.3
前端·react.js·前端框架
其实防守也摸鱼3 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
不会敲代码13 小时前
TCP/IP 与前端性能:从数据包到首次渲染的底层逻辑
前端·tcp/ip
kyriewen4 小时前
奥特曼借GPT-5.5干杯,而你的Copilot正按Token收钱
前端·github·openai
小郑加油4 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习