JavaScript 選擇文件並讀取文本


input標簽

input文件及多文件標簽:

<input type="file" value="選擇文件"></input>
<input type="file" multiple="multiple" value="選擇多個文件"></input>

FileReader 以及 FileReaderSync . readAsText(file, encoding?)函數

FileReader是異步的文件讀取器, 可以指定文本編碼讀取文本.
FileReaderSync在WebWorker中可用, 這個類的readAsText接口是同步的.

With jQuery

function popFileSelector() {
    $(`<input type="file" value="選擇文件"></input>`)
        .click()
        .on('change', event => {
            let file = event.target.files[0];
            let file_reader = new FileReader();
            file_reader.onload = () => {
                let fc = file_reader.result;
                console.log(fc); // 打印文件文本內容
            };
            file_reader.readAsText(file, 'UTF-8');
        });
}

原生 Without jQuery

function popFileSelector() {
    let input = document.createElement('input');
    input.value = '選擇文件';
    input.type = 'file';
    input.onchange = event => {
        let file = event.target.files[0];
        let file_reader = new FileReader();
        file_reader.onload = () => {
            let fc = file_reader.result;
            console.log(fc); // 打印文件文本內容
        };
        file_reader.readAsText(file, 'UTF-8');
    };
    input.click();
}

原生 With Promise


function popFileSelector() {
    return new Promise((resolve, reject) => {
        let input = document.createElement('input');
        input.value = '選擇文件';
        input.type = 'file';
        input.onchange = event => {
            let file = event.target.files[0];
            let file_reader = new FileReader();
            file_reader.onload = () => {
                let fc = file_reader.result;
                resolve(fc); // 返回文件文本內容到Promise
            };
            file_reader.readAsText(file, 'UTF-8');
        };
        input.click();
    });
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM