definição:
O construtor Blob() retorna um novo objeto Blob. O conteúdo do blob consiste na concatenação dos valores dados no array de parâmetros.
gramática
var aBlob = new Blob( array, options );
parâmetro
array é um Array composto de objetos ArrayBuffer, ArrayBufferView, Blob, DOMString, etc., ou uma mistura de outros objetos similares, que serão colocados no Blob. DOMStrings serão codificados como UTF-8.
options é um dicionário BlobPropertyBag opcional, que pode especificar as duas propriedades a seguir:
type, o valor padrão é "", que representa o tipo MIME do conteúdo da matriz que será colocado no blob.
terminações, o valor padrão é "transparente", usado para especificar como a string contendo o terminador de linha \n é escrita. É um dos dois valores: "nativo", significando que os finais de linha são alterados para novas linhas apropriadas para o sistema de arquivos do sistema operacional do host, ou "transparente", significando que os blobs salvos permanecem inalterados Fora do padrão
exemplo
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 para arquivo
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)