首頁  >  文章  >  web前端  >  HTML5 FileReader介面的詳細介紹

HTML5 FileReader介面的詳細介紹

黄舟
黄舟原創
2017-04-13 10:31:021528瀏覽

1、FileReader概述

FileReader 物件允許Web應用程式非同步讀取儲存在使用者電腦上的檔案(或原始資料緩衝區)的內容,使用File Blob 物件指定要讀取的檔案或資料。

其中File物件可以是來自使用者在一個d5fd7aea971a85678ba271703566ebfd元素上選擇檔案後傳回的FileList物件,也可以來自拖曳操作產生的DataTransfer物件,也可以是來自在一個HTMLCanvasElement上執行mozGetAsFile()方法後傳回結果

2、FileReader介面方法

將檔案讀取為二進位碼將檔案讀取為文字ArrayBuffer物件
#方法名稱 參數 描述
#readAsBinaryString
##file
readAsText file,[encoding]
##readAsDataURL file將檔案讀取為DataURL
readAsArrayBuffer file 將檔案讀取為

abort

(none)

#中斷讀取運算

 onabortonerror onloadstartonprogress
      3、FileReader介面事件
事件
#描述
資料讀取中斷時觸發
資料讀取出錯時觸發
資料讀取開始時觸發

資料讀取中

onload

#資料讀取成功完成時觸發

####onloadend############資料讀取完成時觸發,無論成功失敗################# # ###### ###### ###### ####### ###### ####### ######4、使用實例###
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Html5Test</title>
</head>
<body>
    <article>
        <header></header>
        <section>
            <p>
                <lable>请选择一个文件:</lable>
                <input type="file" id="file_reader">
                <input type="button" value="读取图像" onclick="readAsDataUrl();">
                <input type="button" value="读取二进制数据" onclick="readAsBinaryString();">
                <input type="button" value="读取文本文件" onclick="readAsText();">
            </p>
            <p id="file_reader_result" name="file_reader_result">
                <!-- 这里用来显示读取结果 -->
            </p>
            <script>
            var file_reader_result = document.getElementById("file_reader_result");
            // 检测浏览器是否支持FileReader
            if (typeof FileReader == "undefined") {
                file_reader_result.innerHTML = "您的浏览器不支持FileReader";
                file.setAttribute(&#39;disabled&#39;, &#39;disabled&#39;);
            }
            // 将文件以Data Url形式读入页面
            function readAsDataUrl(){
                // 检查是否为图像文件
                var f = document.getElementById("file_reader").files[0];
                if (!/image\/\w+/.test(f.type)) {
                    file_reader_result.innerHTML = "请上传图片文件!";
                    return false;
                };
                var reader = new FileReader();
                // 将文件以Data Url形式读入页面
                reader.readAsDataURL(f);
                reader.onload = function(e){
                    file_reader_result.innerHTML = &#39;<img src="&#39; + this.result + &#39;" alt="图片" />&#39;;
                }
            }
            // 将文件以二进制形式读入页面
            function readAsBinaryString(){
                // 检查是否为图像文件
                var f = document.getElementById("file_reader").files[0];
                if (!/image\/\w+/.test(f.type)) {
                    file_reader_result.innerHTML = "请上传图片文件!";
                    return false;
                };
                var reader = new FileReader();
                // 将文件以二进制形式读入页面
                reader.readAsBinaryString(f);
                reader.onload = function(e){
                    file_reader_result.innerHTML = this.result;
                }
            }
            // 将文件以文本形式读入页面 目前测试仅支持txt文件
            function readAsText(){
                // 检查是否是文本文件
                var f = document.getElementById("file_reader").files[0];
                if (!/text\/\w+/.test(f.type)) {
                    file_reader_result.innerHTML = "请上传文本文件!";
                    return false;
                };
                var reader = new FileReader();
                // 将文件以文本形式读入页面
                reader.readAsText(f);
                reader.onload = function(e){
                    file_reader_result.innerHTML = this.result;
                }
            }
            </script>
        </section>
    </article>
</body>
</html>

以上是HTML5 FileReader介面的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn