首页 > 其他分享 >js读取文件内容

js读取文件内容

时间:2022-10-08 00:00:45浏览次数:78  
标签:文件 const 读取 FileReader 100% js file

原理是,FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。其中 File 对象可以是来自用户在一个 input元素上选择文件后返回的FileList对象。
参考 https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

  <style>
    .file-box{
      width: 100px;
      height: 100px;
      position: relative;
    }
    .file-box::before{
      content: '';
      display: block;
      width: 100%;
      height: 100%;
      border-radius: 4px;
      border: 1px dotted #999;
      background: #fff;
      position: absolute;
      top: 0;
      left: 0;
    }
    .input{
      width: 100%;
      height: 100%;
      opacity: 0;
    }
    .text{
      position: absolute;
      top: 30px;
      left: 0;
      right: 0;
      text-align: center;
    }
  </style>

  <div class="file-box">
    <input class="input" type="file" id="fileId" onchange="input()" draggable/>
  </div>

  <div id="content"></div>

脚本部分:


    async function input() {
      var fileInput = document.getElementById("fileId");
      const fileRes = await waitReader(fileInput.files[0])
      console.log(fileRes)
      document.getElementById('content').innerText = fileRes
    }
    function waitReader (file) {
      return new Promise((resolve, reject) => {
        const reader = new FileReader()   // 新建一个FileReader
        reader.readAsText(file, 'UTF-8')  // 读取文件
        reader.onload = function (evt) {  // 读取完文件之后会回来这里 这是个异步
          const fileString = evt.target.result  // 读取文件内容
          fileString ? resolve(fileString) : reject(evt)
        }
      })
    }

标签:文件,const,读取,FileReader,100%,js,file
From: https://www.cnblogs.com/_error/p/16767541.html

相关文章

  • JS数据结构与算法
     1.重要性什么是数据结构?数据结构和算法的重要性 2.线性结构2.1数组数组使用的API 2.2栈自定义栈栈的应用 2.3队列自定义队列优先级队列队列的应......
  • Python 如何查找特定类型文件(以xls和xlsx为例)
    今天的文章是介绍如何用Python去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件......
  • 如何理解package.json中的proxy字段?
    入职新公司以来,第一个月接手vue项目,第二个月接手angularjs项目,第三个月加入react重构项目。心生感叹:业务驱动式学习是一种高效率的学习方式,保持好奇心,在业务中快速成长!新项......
  • 深入理解JSON.stringify()
    就我目前4年(实习了1年,965了1年,996了2年,算3年感觉少了,说是4年老司机也不为过吧。)的工作经验来看,JSON.stringify一般有以下用途:深拷贝:深拷贝引用类型的数据序列化:服务端存储......
  • VScode开发STM32/GD32单片机-启动文件分析
    用CubeMX软件生成一个makfile工程 拷贝启动文件代码,一点一点分析1/**2******************************************************************************......
  • 文件管理工具“三剑客” #Everything #SpaceSniffer #Clover
    前言:本文收集了我日常使用的三个文件管理工具:文件搜索神器——Everything磁盘文件占用分析工具——SpaceSniffer文件资源管理器——Clover下面我从工具解决的痛点......
  • 【Linux】Ubuntu VirtualBox使用备份文件生成新系统出错
    在模拟区块链节点服务器的时候打算直接将之前的服务器的vmdk文件再拷贝一份还原使用,但结果却抛出错误。后来才知道每个vmdk都存在一个UUID,也就是说每个vmdk文件都是唯一的,在......
  • tsconfig.json的esModuleInterop使用场景是怎样的?
    问题场景npm包改造前,仅支持esmnpm包改造后,既支持esm,又支持cjs为什么改造后,还是会报错?如何理解ts编译配置esModuleInterop?总结问题场景遇到一个很有趣的场景,cjs中需要引入原......
  • 还在为写.vue文件烦恼吗?快来用dot-vue-cli交互式生成吧!
    写过vue的同学都知道,单文件组件.vue在开发中使用频率是非常高的。如果不想再手写或者CV的话,不妨尝试一下我写的这个小工具,支持交互式生成.vue文件,生成的过程只需要回答一些......
  • 浅谈浏览器架构、单线程js、事件循环、消息队列、宏任务和微任务
    关键词:​​多进程、单线程、事件循环、消息队列、宏任务、微任务​​看到这些词仿佛比较让人摸不着头脑,其实在我们的日常开发中,早就和他们打过交道了。我来举几个常见的例子......