H5新增API-file相關(guān)

File對象

lastModified 最后一次修改時(shí)間(毫秒)
lastModifiedDate 最后一次修改日期
name 文件名
type 文件類型
size 文件大小

FileReader

  1. 構(gòu)建FileReader實(shí)例
  2. 選擇要使用的讀取方式,如readAsDataURL(),將文件對象傳遞給該方法
  3. 監(jiān)聽讀取完成事件onload,通過this.result得到讀取結(jié)果
  4. 其它監(jiān)聽事件

以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控制臺中展現(xiàn),第一句:“data:image/jpeg;base64,”表示base64編碼。

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。Base64編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個(gè)較長的唯一標(biāo)識符(一般為128-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時(shí),采用Base64編碼具有不可讀性,即所編碼的數(shù)據(jù)不會被人用肉眼所直接看到。

讀取方式

readAsDataURL(file) 讀取地址 base64
readAsText(file[,encoding]) 讀取文本
readAsBinaryString(file) 以二進(jìn)制讀取

事件

onload 讀取完成
onloadstart 開始讀取
onloadend 結(jié)束讀取 無論成功失敗都會觸發(fā)
onerror 觸發(fā)錯誤
onabort 中斷讀取時(shí)觸發(fā)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,624評論 18 399
  • 在javascript的世界里無法處理二進(jìn)制數(shù)據(jù),如果需要處理,只能使用charCodeAt()方法,一個(gè)個(gè)字節(jié)地...
    我是上帝可愛多閱讀 939評論 0 4
  • 簡介 HTML5 終于為我們提供了一種通過 File API 規(guī)范與本地文件交互的標(biāo)準(zhǔn)方式。為了舉例說明其功能,可...
    ddai_Q閱讀 2,956評論 1 5
  • 山中犬吠夜已深, 茅屋獨(dú)我漸昏沉。 沒有處世萬全法, 怎棄功名利祿心。
    樊小籬閱讀 284評論 0 3

友情鏈接更多精彩內(nèi)容