转换-Js文件类型和转换
以下讲述的类型,指的是浏览器或NodeJs中,文件、数据形态互相转换时会用到的一些类型。
每个类型下,除了描述这个类型的构造函数,还会描述这个从这个类型转为其他类型时的方法。
Blob(仅浏览器支持)
Blob,即 Binary large Object,本质上是一个二进制对象,该对象在创建、读取后,是一个只读的、原始数据的类文件对象。
new Blob(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
const htmlBlob = new Blob(['<html><h2>一段HTML</h2></html>'], {type : 'text/html'})
console.log(htmlBlob)
参数blobParts:是一个数组,其中的 BlobPart 包含string | Blob | ArrayBuffer | ArrayBufferView 等。
参数options:可选对象,指定两个属性:
type:表示Blob对象数据的MIME类型
endings:"native" | "transparent",指定包含行结束符\n的字符串如何写入,
- size:长度
- type:MIME类型
arrayBuffer():返回包含Blob所有内容的二进制格式的ArrayBuffer的一个promise对象
stream():返回能读取Blob的ReadableStream对象
text():返回包含Blob所有内容的字符串(UTF-8编码)的一个promise对象
slice():返回原Blob在该范围的数据,得到一个新的Blob对象,需要传入start、end值作为参数
转为Blob
转为File
使用 File 的构造函数:
new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
typescript
const blob = 'blob类型'
const file = new File([blob], 'fileName.txt', {type: blob.type})