html5 file文件,HTML5 File API

原生控件

我是一个萌萌的原生上传控件

文件信息

var uploadBtn = document.getElementById('uploadBtn'),

file = uploadBtn.files;

file存储着上传文件的信息

值得一提的是,重复上传文件并不会使FileList增加元素,而是替代了FileList[0]

2be8300ecdfb

FileReader

var reader = new FileReader()

// 四种读取文件的方式,以名思义(常用前二)

// reader.readAsText(file, encoding)

// reader.readAsDataURL(file) // 常用于图片

// reader.readAsBinaryString(file)

// reader.readAsArrayBuffer(file)

reader.readyState 记录着reader的状态。

0:new之后

1:执行上述四个读取方法之一后

2:读取完毕,触发onload事件

Event

// 上传进度

reader.onprogress = function(ev) {

if (ev.lengthComputable) { // 文件的长度是否可计算

ev.total // 文件总长

ev.loaded // 已加载

}

}

// 上传成功

reader.onload = function() {

reader.result // 文件信息

}

// 上传失败

reader.onerror = function() {

reader.error // 错误信息

}

// 上传完成

reader.loadend

// 上传开始

reader.loadstart

小技巧

在上述文件信息中,我们可以发现File.size表示的是图片的字节大小,那么,图片的尺寸信息去哪儿找呢?

reader.onload = function() {

var image = new Image();

image.src = this.result;

console.log(image.width)

console.log(image.height)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值