zoukankan      html  css  js  c++  java
  • 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();
        });
    }
    
  • 相关阅读:
    20000+关注,开源两本硬核的原创电子书!
    Tail Latency学习
    Zabbix5.0 监控redis
    JAVA多线程(九) ForkJoin框架
    JAVA多线程(八) Condition源码分析
    程序员英语学习(二) 标点符号对应的英语单词汇总
    linux shell快速入门
    Ubuntu常用指令和快捷键汇总
    Win10常用快捷键汇总
    算法路漫漫(三) 荷兰国旗
  • 原文地址:https://www.cnblogs.com/develon/p/13601768.html
Copyright © 2011-2022 走看看