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 属性设为被传入的值。它的默认值是一个空的字符串。