H5新增API-file相关

2017-07-17  本文已影响237人  月光在心中

File对象

lastModified 最后一次修改时间(毫秒)
lastModifiedDate 最后一次修改日期
name 文件名
type 文件类型
size 文件大小

FileReader

  1. 构建FileReader实例
  2. 选择要使用的读取方式,如readAsDataURL(),将文件对象传递给该方法
  3. 监听读取完成事件onload,通过this.result得到读取结果
  4. 其它监听事件

以img为例,读取文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <input type="file" name="" id="myFile" value="" multiple>
</body>
<script type="text/javascript">
    var inp = document.querySelector("#myFile");
    inp.onchange = function(){
        console.log(this.files);

        for (var i = 0; i < this.files.length; i++) {
            var file = this.files[i];
            console.log(file);

            var fr = new FileReader();
            fr.readAsDataURL(file);
            fr.onload = function(){
                console.log(this.result);
                var img = new Image();
                img.src = this.result;
                document.body.appendChild(img);
            }
        }
    }

</script>
</html>

在console.log控制台中展现,第一句:“data:image/jpeg;base64,”表示base64编码。

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

读取方式

readAsDataURL(file) 读取地址 base64
readAsText(file[,encoding]) 读取文本
readAsBinaryString(file) 以二进制读取

事件

onload 读取完成
onloadstart 开始读取
onloadend 结束读取 无论成功失败都会触发
onerror 触发错误
onabort 中断读取时触发

上一篇下一篇

猜你喜欢

热点阅读