Blob

Blob

语法

  • var aBlob = new Blob(array, options)
  • array 是一个由 ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array, 或者其他类似对象的混合体,它将会被放进 Blob。 DOMStrings 会被编码为 UTF-8
  • options 是一个可选的 BlobPropertyBag 字典,它可能会指定如下两个属性:
  •   - type, 默认值为 "",它代表了将会被放入到 blob 中的数组内容的 MIME 类型。
  •   - endings, 默认值为 "transparent", 用于指定包含行结束符 的字符串如何被写入。值为 "native",代表行结束会被更改为适合宿主操作系统文件系统的换行符,"transparent", 代表会保持 blob 中保存的结束符不变

示例

  • var aFile = ['<a id="a"><b id="b">hi, betiastar!</b></a>'] // 一个包含 DOMString 的数组
  • var oBlob = new Blob(aFile, {type: 'text/html'}) //得到 blob

属性

size

  • File.size 返回一个 File 对象所指代的文件的大小,单位为字节
  • // fileInput 是一个 HTMLInputElement 元素:
  • var fileInput = document.getElementById('myfileinput')
  • // files是一个FileList对象(类似于NodeList)
  • var files = fileInput.files;
  • for (var i = 0; i < files.length; i++) {
  •   alert(files[i].name + "文件的大小为 " + files[i].size + " 字节");
  • }

type

  • File.type 返回 Blob 对象的 MIME 类型。如果类型无法确定,则返回空字符串
  • var mimetype = instaceOfFile.type
  • // fileInput是一个HTML Input元素:
  • var fileInput = document.getElementById("myfileinput");
  • // files是一个FileList对象(类似于NodeList,是多个file对象的集合)
  • var files = fileInput.files;
  • // 仅允许 *.png, *.jpeg *.gif 类型的图片文件
  • var allowedFileTypes = ["image/png", "image/jpeg", "image/gif"];
  • for (var i = 0; i < files.length; i++) {
  •   // 如果文件的文件类型属于allowFileTypes其中的一种
  •   if (allowedFileTypes.indexOf(files[i].type) > -1) {
  •     // 对符合条件的文件进行处理
  •   }
  • }

方法

Blob.slice()

  • var blob = instanceOfBlob.slice([start [,end [, contentType]]])
  • start--可选
  • 该参数代表 Blob 里的下标,表示第一个会被拷贝进新的 Blob 的字节的起始位置。如果你传入的是一个负数,数据将从后往前开始计算.举例来说, -10 将会是 Blob 的最后十个字节。它的默认值是0, 如果你传入的start的长度大于源 Blob 的长度,那么返回的将会是一个长度为0并且不包含任何数据的一个 Blob 对象。
  • end--可选
  • 该参数代表 Blob 里的下标,表示第一个会被拷贝进新的 Blob 的字节的起始位置。如果你传入的是一个负数,数据将从后往前开始计算.举例来说, -10 将会是 Blob 的倒数第十个字节。它的默认值就是它的原始长度(size).
  • contentType--可选
  • 给新的 Blob 赋予一个新的文档类型。这将会把它的 type 属性设为被传入的值。它的默认值是一个空的字符串。
原文地址:https://www.cnblogs.com/webBlog-gqs/p/9923619.html