前端通过Blob或File文件获取二进制数据

简介: 前端通过Blob或File文件获取二进制数据

前言:


按理说,咱前端使用二进制的场景主要是文件以二进制格式的数据上传到后端,或者将后端返回的二进制数据文件下载并解析成文件,关于以上两种场景,可以看我之前的文章。

前端上传文件保存到变量中_接着奏乐接着舞。的博客-CSDN博客

一般情况下,都是给后端一个File文件就完事了,但是有时候后端就非要二进制数据流。

这篇文章主要是写如何将Blob文件或者File文件转成二进制数据,并且将数据转换成后端需要的,最后加密发给后端。

使用场景:


前端使用recorder.js以及websoket,实现前端录音,将音频文件以二进制数据流的形式,加密后发送给后端。

ps1:前端录音和websoket的功能我有写博客。

vue基于websocket实现智能聊天及吸附动画效果_接着奏乐接着舞。的博客-CSDN博客_vuewebsocket聊天

vue悬浮框自由移动+录音功能_接着奏乐接着舞。的博客-CSDN博客_vue浮动框

ps2:后端需要的二进制数据格式是unit8,这个应该是因人而异的,不过不管用啥,其实很简单就把我的例子unit8那里改成你们约定的格式。

image.png

image.png

由上图可知,其实Blob或者File文件只是一个类似仓库的东西,我们无法通过它取出来原始的二进制数据,而完成这些操作的是readAsArrayBuffer()方法,它是 FileReader对象的实例方法,作用就是将其中的二进制数据取出来。取出来之后呢,二进制的数据类型还是很多的,有float32,int8,unit8之类的格式,我们可以onload()回调函数中 使用new Uint8Array()   生成Unit8类型的二进制,同理,要int8的数据类型就用  new Int8Array() 方法。

具体请参考以下代码:            

封装的函数


   // 录音组件录制的用户声音二进制文件
    getBlob (data) {
      var reader = new FileReader() //生成FileReader实例
      reader.readAsArrayBuffer(data) //取出blob或者File文件的二进制原始数据
      reader.onload = function (da) { //有一个异步回调
        let yy = new Uint8Array(da.target.result) //后端需要的二进制格式
        let endd = [...yy] //后端需要的格式,我们改造成数组
        this.houDuanData = endd //保存到变量中,保存的就是我们需要的二进制数据
      }
    },
相关文章
|
24天前
|
监控 JavaScript 前端开发
前端的混合之路Meteor篇(六):发布订阅示例代码及如何将Meteor的响应数据映射到vue3的reactive系统
本文介绍了 Meteor 3.0 中的发布-订阅模型,详细讲解了如何在服务器端通过 `Meteor.publish` 发布数据,包括简单发布和自定义发布。客户端则通过 `Meteor.subscribe` 订阅数据,并使用 MiniMongo 实现实时数据同步。此外,还展示了如何在 Vue 3 中将 MiniMongo 的 `cursor` 转化为响应式数组,实现数据的自动更新。
|
24天前
|
JSON 分布式计算 前端开发
前端的全栈之路Meteor篇(七):轻量的NoSql分布式数据协议同步协议DDP深度剖析
本文深入探讨了DDP(Distributed Data Protocol)协议,这是一种在Meteor框架中广泛使用的发布/订阅协议,支持实时数据同步。文章详细介绍了DDP的主要特点、消息类型、协议流程及其在Meteor中的应用,包括实时数据同步、用户界面响应、分布式计算、多客户端协作和离线支持等。通过学习DDP,开发者可以构建响应迅速、适应性强的现代Web应用。
|
1月前
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
33 4
|
24天前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
1月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
138 0
|
1月前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
127 0
|
1月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
92 0
|
1月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
128 2
|
1月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
38 0
|
1月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。