HTML5 中的文件(File)操作

HTML5中丰富了input 标签type为file的操作。
提供了一个multiple属性。以及提供了在浏览器中操作file的接口。
type:上传文件的mime属性
name:上传文件的name属性
不过最重要的还是FileReader接口,可以实现文件内容读取。
目前,FileReader接口支持的比较好的是:Firefox,Opera。
FileReader有三个方法可以获取文件内容:
readAsDataURL();//返回一个DataURL链接,可以作为<img />标签的src属性值
readAsText();//返回文件文本
readAsBinaryString();//返回文件的二进制格式。
所以以下的代码是基于Opera中的。也只有这两个浏览器可用。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>fileReader对象的事件先后顺序</title>
    <script type="text/javascript">
var result = document.getElementById('result');
if(typeof FileReader == 'undefined'){
result.innerHTML = '<p>抱歉,您的浏览器不支持FileReader</p>';
var file = document.getElementById('file');
file.setAttribute('disabled','disabled');
}
function readFile(){
var file = document.getElementById('file').files[0];
var result = document.getElementById('result');
var reader = new FileReader();
reader.onload = function(e){
result.innerHTML = "<img src='"+this.result+"' />";
}
reader.onprogress = function(e){
//alert('progress');
var total = e.total;
var loaded = e.loaded;
var progress = document.getElementById('progress');
progress.value = (loaded/total)*progress.max;
}
reader.onloadend = function(e){
if(e.total!=0){
var progress = document.getElementById('progress');
progress.value = progress.max;
}
}
reader.readAsDataURL(file);
}
    </script>
</head>

<body>
<p>
     <label>请选择一个图像文件:</label>
        <input type="file" id="file" />
        <input type="button" onClick="readFile()" value="显示图像" />
        <progress id="progress" max="100" value="" />
    </p>
    <div name="result" id="result">
    </div>
</body>
</html>
使用的效果图如下:
HTML5 中的文件(File)操作 - viowan - 休息的地方.
 这张效果图是在Opera中的。主要实现了上传图片的预览功能。
其中还结合了progress元素。能动态显示加载的进度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值