1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【JavaScript 教程】瀏覽器—File 對(duì)象,F(xiàn)ileList 對(duì)象,F(xiàn)ileReader 對(duì)象

        共 3526字,需瀏覽 8分鐘

         ·

        2020-09-15 16:42

        作者 | 阮一峰

        1、File 對(duì)象

        File 對(duì)象代表一個(gè)文件,用來(lái)讀寫文件信息。它繼承了 Blob 對(duì)象,或者說(shuō)是一種特殊的 Blob 對(duì)象,所有可以使用 Blob 對(duì)象的場(chǎng)合都可以使用它。
        最常見(jiàn)的使用場(chǎng)合是表單的文件上傳控件(),用戶選中文件以后,瀏覽器就會(huì)生成一個(gè)數(shù)組,里面是每一個(gè)用戶選中的文件,它們都是 File 實(shí)例對(duì)象。
        // HTML 代碼如下
        //
        var file = document.getElementById('fileItem').files[0];
        file instanceof File // true
        上面代碼中,file是用戶選中的第一個(gè)文件,它是 File 的實(shí)例。

        1.1、構(gòu)造函數(shù)

        瀏覽器原生提供一個(gè)File()構(gòu)造函數(shù),用來(lái)生成 File 實(shí)例對(duì)象。
        new File(array, name [, options])
        File()構(gòu)造函數(shù)接受三個(gè)參數(shù)。
        • array:一個(gè)數(shù)組,成員可以是二進(jìn)制對(duì)象或字符串,表示文件的內(nèi)容。

        • name:字符串,表示文件名或文件路徑。

        • options:配置對(duì)象,設(shè)置實(shí)例的屬性。該參數(shù)可選。

        第三個(gè)參數(shù)配置對(duì)象,可以設(shè)置兩個(gè)屬性。
        • type:字符串,表示實(shí)例對(duì)象的 MIME 類型,默認(rèn)值為空字符串。

        • lastModified:時(shí)間戳,表示上次修改的時(shí)間,默認(rèn)為Date.now()。

        下面是一個(gè)例子。
        var file = new File(
        ['foo'],
        'foo.txt',
        {
        type: 'text/plain',
        }
        );

        1.2、實(shí)例屬性和實(shí)例方法

        File 對(duì)象有以下實(shí)例屬性。
        • File.lastModified:最后修改時(shí)間

        • File.name:文件名或文件路徑

        • File.size:文件大?。▎挝蛔止?jié))

        • File.type:文件的 MIME 類型


        var myFile = new File([], 'file.bin', {
        lastModified: new Date(2018, 1, 1),
        });
        myFile.lastModified // 1517414400000
        myFile.name // "file.bin"
        myFile.size // 0
        myFile.type // ""
        上面代碼中,由于myFile的內(nèi)容為空,也沒(méi)有設(shè)置 MIME 類型,所以size屬性等于0,type屬性等于空字符串。
        File 對(duì)象沒(méi)有自己的實(shí)例方法,由于繼承了 Blob 對(duì)象,因此可以使用 Blob 的實(shí)例方法slice()。

        2、FileList 對(duì)象

        FileList對(duì)象是一個(gè)類似數(shù)組的對(duì)象,代表一組選中的文件,每個(gè)成員都是一個(gè) File 實(shí)例。它主要出現(xiàn)在兩個(gè)場(chǎng)合。
        • 文件控件節(jié)點(diǎn)()的files屬性,返回一個(gè) FileList 實(shí)例。

        • 拖拉一組文件時(shí),目標(biāo)區(qū)的DataTransfer.files屬性,返回一個(gè) FileList 實(shí)例。

        // HTML 代碼如下
        //
        var files = document.getElementById('fileItem').files;
        files instanceof FileList // true
        上面代碼中,文件控件的files屬性是一個(gè) FileList 實(shí)例。
        FileList 的實(shí)例屬性主要是length,表示包含多少個(gè)文件。
        FileList 的實(shí)例方法主要是item(),用來(lái)返回指定位置的實(shí)例。它接受一個(gè)整數(shù)作為參數(shù),表示位置的序號(hào)(從零開始)。但是,由于 FileList 的實(shí)例是一個(gè)類似數(shù)組的對(duì)象,可以直接用方括號(hào)運(yùn)算符,即myFileList[0]等同于myFileList.item(0),所以一般用不到item()方法。

        3、FileReader 對(duì)象

        FileReader 對(duì)象用于讀取 File 對(duì)象或 Blob 對(duì)象所包含的文件內(nèi)容。
        瀏覽器原生提供一個(gè)FileReader構(gòu)造函數(shù),用來(lái)生成 FileReader 實(shí)例。
        var reader = new FileReader();
        FileReader 有以下的實(shí)例屬性。
        • FileReader.error:讀取文件時(shí)產(chǎn)生的錯(cuò)誤對(duì)象
        • FileReader.readyState:整數(shù),表示讀取文件時(shí)的當(dāng)前狀態(tài)。一共有三種可能的狀態(tài),0表示尚未加載任何數(shù)據(jù),1表示數(shù)據(jù)正在加載,2表示加載完成。
        • FileReader.result:讀取完成后的文件內(nèi)容,有可能是字符串,也可能是一個(gè) ArrayBuffer 實(shí)例。
        • FileReader.onabort:abort事件(用戶終止讀取操作)的監(jiān)聽(tīng)函數(shù)。
        • FileReader.onerror:error事件(讀取錯(cuò)誤)的監(jiān)聽(tīng)函數(shù)。
        • FileReader.onload:load事件(讀取操作完成)的監(jiān)聽(tīng)函數(shù),通常在這個(gè)函數(shù)里面使用result屬性,拿到文件內(nèi)容。
        • FileReader.onloadstart:loadstart事件(讀取操作開始)的監(jiān)聽(tīng)函數(shù)。
        • FileReader.onloadend:loadend事件(讀取操作結(jié)束)的監(jiān)聽(tīng)函數(shù)。
        • FileReader.onprogress:progress事件(讀取操作進(jìn)行中)的監(jiān)聽(tīng)函數(shù)。
        下面是監(jiān)聽(tīng)load事件的一個(gè)例子。
        // HTML 代碼如下
        //

        function onChange(event) {
        var file = event.target.files[0];
        var reader = new FileReader();
        reader.onload = function (event) {
        console.log(event.target.result)
        };

        reader.readAsText(file);
        }
        上面代碼中,每當(dāng)文件控件發(fā)生變化,就嘗試讀取第一個(gè)文件。如果讀取成功(load事件發(fā)生),就打印出文件內(nèi)容。
        FileReader 有以下實(shí)例方法。
        瀏覽 52
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        JavaScript面向?qū)ο缶?/a>
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            ass丰满女人ass | 一级AAAA级毛片免费看 | 91中文字日产乱幕4区 | 成人AAAA免费全部观看 | 久久一本人碰碰碰人 | 欧美gay老头互吃浴池搓澡 | 一区在线播放 | 男人插男人视频 | 做爱免费视频免费网站 | 成人免费无码影片在线观看免费 |