js图片上传中file、bolb、base64图片之间的相互转化

为了详细讲解“js图片上传中file、bolb、base64图片之间的相互转化”的完整攻略,我们需要分别了解它们都代表着什么,以及相互之间的转换方式:

  1. File类型

File类型表示一个文件,通常是从用户计算机中选定的文件。File对象通常与input元素一起使用,而用于上传文件。File对象包含了文件的名称、文件大小、类型以及最后修改的时间等信息。

将File类型转化为Blob类型,可以尝试使用File中的slice方法,将一个文件切分为一片,可以通过不同的参数对数据进行切片。示例代码如下:

let file = document.getElementById("fileInput").files[0];
let start = 0;
let end = file.size;
let blob = file.slice(start, end);
  1. Blob类型

Blob对象代表不可变的类似文件对象的原始数据。Blob表示二进制数据块,Blob提供了一种通用的文件对象,支持 Blob和 File 类型数据的读取、转换和操作。Blob对象可以是任意类型的数据,比如图片、音频、视频或文本等。可以将Blob类型转化为Base64类型,示例代码如下:

let myBlob = new Blob(["test blob"], {type : "text/plain"});
let reader = new FileReader();
reader.readAsDataURL(myBlob); 
reader.onloadend = function() {
    console.log(reader.result);
};
  1. Base64类型

Base64类型编码是一种用64种字符来表示二进制数据的编码方法。Base64类型字符串是用6位来计算的,所以每三个字节都会对应出现四个数字的Base64编码, 是一种表示二进制数据的方案。将Base64类型转化为Blob类型,可尝试使用atob方法将Base64类型字符串解码成二进制数据,然后创建Blob对象,示例代码如下:

let base64Data = "data:image/jpeg;base64,/9j/4AAQSkZJRgA...";
let byteCharacters = atob(base64Data.split(',')[1]);
let byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
}
let byteArray = new Uint8Array(byteNumbers);
let blob = new Blob([byteArray]);

以上是针对js中图片上传的三种数据类型,File、Blob、Base64之间的互相转化攻略,其中每个类型的实现方法也有更多的细节,可以根据实际情况进行选择和改写。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js图片上传中file、bolb、base64图片之间的相互转化 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js获取本日、本周、本月的时间代码

    下面是获取本日、本周、本月的时间代码的完整攻略。 获取本日时间代码 我们可以使用JavaScript Date对象中的方法获取当前本日的时间。首先,我们需要创建一个Date对象,然后使用该对象的方法获取日期、月份和年份。下面是示例代码: const today = new Date(); const year = today.getFullYear(); c…

    JavaScript 2023年5月27日
    00
  • jQuery中JSONP的两种实现方式详解

    jQuery中JSONP的两种实现方式详解 什么是JSONP JSONP是一种跨域请求的方法。跨域请求是指浏览器不能直接访问其他源的数据,而在使用 JSONP 进行跨域请求时,浏览器会将请求发送到同源的一个脚本文件中,脚本文件返回一个回调函数的调用和数据,浏览器在执行回调函数时获取数据。 JSONP的工作原理如下: 请求方动态生成一个标签,其中src属性指向…

    JavaScript 2023年5月27日
    00
  • js获取文件里面的所有文件名(实例)

    下面是关于“js获取文件里面的所有文件名”的详细攻略: 1. 通过Ajax请求读取文件列表 首先,我们可以通过使用Ajax请求来获取文件目录下的所有文件名称,具体步骤如下: 1.1 创建一个XMLHttpRequest对象 var xhr = new XMLHttpRequest(); 1.2 发送请求并指定请求方式和请求地址 xhr.open(‘GET’,…

    JavaScript 2023年5月27日
    00
  • Javascript模块导入导出详解

    下面是Javascript模块导入导出详解的完整攻略。 什么是Javascript模块 Javascript模块是Javascript中的一种代码组织方式,它将代码分割成更小的、更易于维护的模块,每个模块都有自己的作用域和功能。模块可以包含变量、函数、类等,通过模块的方式来导入和导出这些内容,可以实现模块化开发的效果。 模块的导出 Javascript模块的…

    JavaScript 2023年5月27日
    00
  • Vue3 跨域配置devServer的参数和设置方法

    Vue3 是一款流行的前端框架,它允许我们在开发中使用各种功能强大的功能,其中包括跨域请求。在本篇文章中,我将为您讲解如何在 Vue3 项目中配置 devServer 实现跨域请求。 什么是跨域请求? 在 Web 开发中,域指的是通过互联网来唯一标识一个网络资源的字符串。跨域请求则是指在客户端浏览器向服务器发起请求时,所请求的资源的域名与当前网页的域名不同,…

    JavaScript 2023年6月11日
    00
  • JavaScript正则表达式(总结篇)

    JavaScript正则表达式(总结篇) 什么是正则表达式 正则表达式是一种描述字符模式的工具,它提供了一种灵活的方式来匹配、查找、替换字符串中的文本。 在JavaScript中,正则表达式通常使用RegExp对象创建,它可以表示一个字符串的模式。 创建正则表达式 有两种方式可以创建正则表达式: 字面量方式,使用斜杠/../../来创建正则表达式。 java…

    JavaScript 2023年5月28日
    00
  • element实现合并单元格通用方法

    当需要将某些单元格合并为一个单元格时,我们可以使用colspan和rowspan属性进行处理。但这些属性只适用于表格的较小区域。如果我们需要在整个表格中合并单元格,这时候就可以使用JavaScript来实现。element库提供一个通用方法来实现合并单元格。下面是具体步骤: 获取表格元素 首先,需要获取到需要合并单元格的表格元素。这可以通过元素的ID来获取,…

    JavaScript 2023年6月10日
    00
  • 前端常用的js函数方法

    在讲解前端常用的JS函数方法之前,先介绍一下JS的基础知识。 JS基础知识 1. 数据类型 JS中包含6种数据类型: string(字符串):用于表示文本数据,可使用单引号、双引号或反引号(ES6新增)引用字符串。如:’hello’、”world”、hello world; number(数字):表示数值数据,包括整数、浮点数、负数、正数、NaN等等。如:1…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部