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();
        });
    }
    
  • 相关阅读:
    Web 学习笔记
    Canvas 实现灵动的红鲤鱼动画(上)
    Canvas 仿百度贴吧客户端 loading 小球
    使用 Vue 和 epub.js 制作电子书阅读器
    用 Vue 开发一个简单的答题应用(一)
    利用 html2canvas 做个简单的诗词卡片生成器
    FileSaver.js 介绍
    shim 和 polyfill
    clipboard.js 介绍
    (译)通过 HTML、JS 和 Electron 创建你的第一个桌面应用
  • 原文地址:https://www.cnblogs.com/develon/p/13601768.html
Copyright © 2011-2022 走看看