Html5 文件API(一)
2015-12-28 14:06
471 查看
Html5 文件API(一)
[TOC]FileList 对象与File 对象
直接看示例html代码
<input type="file" id="file" multiple> <input type="button" id="btn" value="文件上传">
js代码
window.onload = function(){ function showFile(){ var file = document.getElementById('file'); for (var i = 0; i < file.files.length; i++) { console.log(file.files[i]); } } var btn = document.getElementById('btn'); btn.onclick = function(){ showFile(); }; };
示例中涉及属性
multiple属性规定可同时选择多个选项。可参考multiple解释
Blob 对象
根据上个实例,因为file继承自blob,所以file可以得到文件的名字,尺寸,类型files[i].name //获得第i个文件的名字 files[i].size //获得第i个文件的大小 files[i].type //获得第i个文件的类型
为上个实例添加判断上传文件是否为图片
js代码
window.onload = function(){ function showFile(){ var file = document.getElementById('file'); for (var i = 0; i < file.files.length; i++) { if (!/image\/\w+/.test(file.files[i].type)) { alert('请上传图片喔!'); }else{ console.log('成功上传。'); } } } var btn = document.getElementById('btn'); btn.onclick = function(){ showFile(); }; };
FileReader 对象
直接看示例html
<input type="file" id="file"> <input type="button" id="btn" value="读取文件"> <div id="result"></div>
五个对象
readAsBinaryString
把文件读取为二进制字符串window.onload = function(){ function readAsBinaryString(){ var file = document.getElementById('file').files[0]; var reader = new FileReader(); reader.readAsBinaryString(file); reader.onload = function(e){ var result = document.getElementById('result'); result.innerHTML = this.result; }; } var btn = document.getElementById('btn'); btn.onclick = function(){ readAsBinaryString(); }; };
readAsText
把文件读取为文本数据新建一个文本文件
readAsText.txt,文本内容随意填写
js代码为
window.onload = function(){ function readAsText(){ var file = document.getElementById('file').files[0]; var reader = new FileReader(); reader.readAsText(file); reader.onload = function(e){ var result = document.getElementById('result'); result.innerHTML = this.result; }; } var btn = document.getElementById('btn'); btn.onclick = function(){ readAsText(); }; };
readAsDataURL
将读取到的文件编码成Data URL。window.onload = function(){ function readAsDataURL(){ var file = document.getElementById('file').files[0]; var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(e){ var result = document.getElementById('result'); result.innerHTML = '<img src="'+ this.result +'" alt="" />'; }; } var btn = document.getElementById('btn'); btn.onclick = function(){ readAsDataURL(); }; };
readArryButter
abort
中断读取操作六个事件
onabort
加载被中断时onerror
加载出错时onloadstart
加载开始时onprogress
加载过程中onload
加载成功时onloadend
加载结束后相关文章推荐
- html5调用手机相机并压缩、上传
- document.createEvent建立自定义事件
- 2015.12.21~2015.12.24真题回顾!-- HTML5学堂
- 对canvas的简单解释
- 慕课网H5圣诞主题
- 14款超时尚的HTML5时钟动画
- 40 个重要的 HTML5 面试题及答案
- HTML5之SessionStorage本地存储
- 基于HTML5的Web SCADA工控移动应用
- html5-开发起步使用工具
- HTML5中的 DOM 树
- 网页html5通过特殊链接:打电话,发短信,发邮件
- HTML5移动web横屏字体变大
- HTML5<fieldset>标签
- 如何修改HTML5 input placeholder 颜色
- html5 Audio音乐播放器(canvas圆形音乐播放进度条)(二)
- 基于Cloudera Manager 5和CDH5(版本5.3.3)的Hadoop集群安装
- -webkit-animation的使用方法
- HTML5 history新特性pushState、replaceState及两者的区别
- 程序员用HTML5给女朋友制作的3D相册