关于Javascript 中的 FileReader, XMLHttpRequest, Blob, ArrayBuffer, DataURL 等

FileReader 用于读取 Blob 和 File

Blob 是 HTML 中内嵌对象的媒体数据, 如Jpeg文件内容

File 就是 HTML 中 <Input type='File'> 的文件

如: 

var reader = new FileReader();

reader.readerAsArrayBuffer ( fileOrBlob );

当 reader 真正加载数时, 会调用 reader.onload 这个回调函数

reader.onload = function(){

var buffer = reader.result;// 这时才能取 result 的值

Console.log(buffer.byteLength);

};// 注: 回调函数的设定应该在调用 readerAsArrayBuffer  之前

file 可以从 <input type='file'> 的属性上获取

如:

<input type='file' οnchange='openFile(event)' />

function openFile(event){

var input = event.target;

var reader = new FileReader();

reader.onload = function() {

// ......

}

reader.readerAsArrayBuffer(input.files[0]);

}

Blob 可以从 XMLHttpRequest 中获取

XMLHttpRequest 的 Response 对象取决于请求时 对 responseType 的 设置

responseTyperesponse returns
'' (default)Same as 'text'
'text'String
'arraybuffer'ArrayBuffer
'blob'Blob
'document'Document
'json'Object


FileReader 的 result 可以有 3 种形式, 它取决于具体调用读取的方法

调用 reader.readAsArrayBuffer, 则 result 为 ArrayBuffer 对象

调用 reader.readAsText, 则 result 为 字符串

调用 reader.readAsDataURL, 则 result 为 DataURL, DataURL 可直接 赋值给 <img>.src

调试发现 DataURL 是带头信息(/image) 的 base64(可能是) 编码的字符串


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值