首页 > 其他分享 >Js中的File对象

Js中的File对象

时间:2022-09-21 11:37:02浏览次数:48  
标签:返回 JavaScript File 对象 base64 Js str

概述
JavaScript 中存在 File 对象,允许网页中的 JavaScript 访问其内容。
File 对象通常是用户在网页中的一个 <input> 元素上传文件返回的 FileList 对象,或者是拖放操作返回的 DataTransfer 对象,也可以在浏览器中的控制台中自己创建。
File 对象中只存在于浏览器环境中,在 Node 环境不存在!!

 

构造函数
File 的构造函数很简单,使用 new File() 即返回一个新创建的文件对象

 

属性及方法
File 接口继承了 Blob 接口的属性,相关属性可以查询 MDN 中的官方文档,此处只列出较为常见的属性。

File.lastModified:返回该 File 对象引用文件最后修改时间,返回毫秒数;
File.name:返回文件对象名字;
File.size:返回文件大小。

 

由Base64转File对象

在日常开发中,Base64 形式的图片很多,JavaScript 允许将图片的 Base64 编码转换为 File 对象,如下:

 1 function dataURLtoFile(dataurl, filename) {
 2     // 获取到base64编码
 3     const base64_str = dataurl.split(',');
 4     // 将base64编码转为字符串
 5     const decode_str = atob(base64_str[1]);
 6     let n = decode_str .length;
 7     // 创建初始化为0的,包含length个元素的无符号整型数组
 8     const u8arr = new Uint8Array(n) ;
 9     while (n--) {
10         u8arr[n] = decode_str .charCodeAt(n);
11     }
12     return new File([u8arr], filename, {
13         type: 'image/png',
14     });
15 }

 

小结
File 对象在 JavaScript 中的使用及其常见,在前端开发中,我们需要对 Javascript 在 Node 环境和浏览器环境分别使用的区别和共同点进行了解,File 对象就只存在于浏览器环境中。

 

标签:返回,JavaScript,File,对象,base64,Js,str
From: https://www.cnblogs.com/wj365794/p/16714982.html

相关文章

  • 如何保持 NextJS 项目的清晰和干净
    如何保持NextJS项目的清晰和干净已经使用NextJS实现了许多项目,我真的不得不说,我喜欢它。您构建Web应用程序的速度,尤其是与Tailwind结合使用的速度令人难以置信。......
  • JS/TS算法---回溯算法
    回溯算法(backtracking)、什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏......
  • GSON搞定任何JSON数据
    一、Gson介绍GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。特点:快速......
  • 关于js闭包的基础理解
    闭包拿一个可以记录函数调用次数的来进行理解,如下方letn=0functionnumUp(){n++console.log(n)}constfn=numUp()fn()//n=1fn()......
  • 前端Nodejs-Day35
    创建web服务器:①导入http模块:require导入②创建web服务器实例:调用http.createServer()方法  ③为服务器绑定request事件:使用on方法绑定 ④启动服务器:.lis......
  • Node.js(七)MySql+ajax
    Api.jsconstexpress=require("express");constrouter=express.Router();constmysql=require('mysql')constmysqlutil=require("./mysql");letpool=mysql.cre......
  • Vue中使用js-audio-recorder实现录音时提示:浏览器不支持getUserMedia!
    场景Vue中使用js-audio-recorder插件实现录音功能并实现上传Blob数据到SpringBoot后台接口:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126957202上面......
  • Node.js(六)MongoDB
    student.jsvarexpress=require('express');varrouter=express.Router();const_=require("lodash");const{MongoClient}=require("mongodb");//依赖Mong......
  • ES6对Number数字以及Object对象类型做的升级优化
    1.ES6对Number数字做的升级优化优化部分ES6在Number原型上新增了isFinite()、isNaN()方法,用来取代ES5中的isFinite()、isNaN()方法检测数值是否有限,是否是NaN。//ES5c......
  • js generate ASCII table dict All In One
    jsgenerateASCIItabledictAllInOneASCIItabledictgeneratorcharCodeAt&String.fromCodePoint//jsgenerator&ASCIItabledictconstdict={};......