文件流互相转换(blob转base64,二进制流)

这篇具有很好参考价值的文章主要介绍了文件流互相转换(blob转base64,二进制流)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二进制流格式

blob转base64,前端,javascript,前端,html

blob格式

跟用input上传文件的获取到的差不多

blob转base64,前端,javascript,前端,html
用URL.createObjectURL(blob)转化后是这样
blob转base64,前端,javascript,前端,html

base64格式

blob转base64,前端,javascript,前端,html文章来源地址https://www.toymoban.com/news/detail-686931.html

二进制流转blob

getFiles(res, type, filename) {
      // 创建blob对象,解析流数据
      const blob = new Blob([res], {
        // 如何后端没返回下载文件类型,则需要手动设置:type: 'application/pdf;chartset=UTF-8' 表示下载文档为pdf,如果是word则设置为		  msword,excel为excel
        type: type
      });
      const a = document.createElement("a");
      // 兼容webkix浏览器,处理webkit浏览器中href自动添加blob前缀,默认在浏览器打开而不是下载
      const URL = window.URL || window.webkitURL;
      // 根据解析后的blob对象创建URL 对象
      const herf = URL.createObjectURL(blob);
      this.pdfUrl = herf;
    },
this.getFiles((res, "application/pdf;chartset=UTF-8");

blob转base64

    blobToBase64(blob, callback) {
      const fileReader = new FileReader();
      fileReader.onload = (e) => {
        callback(e.target.result);
      };
      fileReader.readAsDataURL(blob);
    },
      this.blobToBase64(blob, (dataurl) => {
        this.pdfBase64 = dataurl;
        console.log("base64", this.pdfBase64);
      });

base64转blob

    base64ToBlob(code) {
      //Base64一行不能超过76字符,超过则添加回车换行符。因此需要把base64字段中的换行符,回车符给去掉,有时候因为存在需要把加号空格之类的换回来,取决于base64存取时的规则。
      code = code.replace(/[\n\r]/g, "");
      var raw = window.atob(code);
      let rawLength = raw.length;
      //转换成pdf.js能直接解析的Uint8Array类型
      let uInt8Array = new Uint8Array(rawLength);
      for (let i = 0; i < rawLength; ++i) {
        uInt8Array[i] = raw.charCodeAt(i);
      }
      console.log(uInt8Array, "uInt8ArrayuInt8Array");
      console.log(new Blob([uInt8Array], { type: "application/pdf" }));
      return new Blob([uInt8Array], { type: "application/pdf" }); //转成pdf类型
    },

二进制流转base64

    getBase64(data) {
      const blob = new Blob([data], { type: "image/jpg" }); //类型一定要写!!!
      return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.readAsDataURL(blob);
        reader.onload = () => resolve(reader.result);
        reader.onerror = (error) => reject(error);
      })
    },

到了这里,关于文件流互相转换(blob转base64,二进制流)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】十进制(正负)与二进制(正负)互相转换的方法技巧:短除法、取反、按位乘……

    导读 :二进制数最高位为符号位,0表示正数、1表示负数 1、正数:短除法,然后将所有0、1从上到下连起来从右至左摆放,不够八位数的左边补0 【例】将十进制数60、13转为二进制: 2 | 60 ‾ underline{text{60}} 60 ​                               2 | 13 ‾ underl

    2023年04月10日
    浏览(56)
  • 通过 Blob 对二进制流文件下载实现文件保存下载

    原理 : 前端将二进制文件做转换 实现下载:请求后端接口-接收后端返回的二进制流(通过二进制流( Blob )下载, 把后端返回的二进制文件放在 Blob 里面)-再通过 file-saver 插件保存 需求背景 业务:下载模板文件 页面上使用: 保存文件: 发起请求通用方法(更改 axios 的 re

    2024年02月09日
    浏览(66)
  • vue 后端返回二进制流-前端通过blob对象下载文件-图片

    前言 在实际开发中我们经常会遇见下载文件的场景,比如下载合同,下载文件 下载文件有2种方式,一种是后端返回二进制流,前端通过blob对象接受根据不同类型下载 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载,其他文件直接下载 但不管是那种方

    2024年02月05日
    浏览(76)
  • html 二进制 blob 给图片赋值

    1、html 二进制流 (非base64),给图片赋值             var reader = new FileReader();             reader.onload = function (e) {               var img = document.querySelector(\\\'#canvas_img\\\');               img.src = e.target.result;             };             // data 二进流             reader.readAs

    2023年04月21日
    浏览(54)
  • Vue前端处理blob二进制对象图片的方法

    近期在做开发的时候遇到一个问题,前端传递一个参数,后端返回一张图片,前端再将该图片展示出来,由于是第一次处理二进制图片对象,特此记录一下。 首先,已知后端接口无误,传递参数可以正常返回图片    前端调用接口,打印并查看获取到的响应数据:     显然

    2024年02月16日
    浏览(48)
  • uniapp小程序中处理blob二进制流数据

    小程序中是不支持blob格式数据的,new Blob()会报错Blob未定义 处理方法是转成base64格式: 首先,请求中要带上responseType: \\\"arraybuffer\\\",保证返回的数据格式是arraybuffer 使用uni.arrayBufferToBase64() 转化成base64格式,后续根据业务处理数据即可。 在这个代码中,数据是一张png格式的二维

    2024年02月04日
    浏览(47)
  • Vue前端渲染blob二进制对象图片的方法

    近期做开发,联调接口。接口返回的是一张图片,是对二进制图片处理并渲染,特此记录一下。 本文章是转载文章,原文章:Vue前端处理blob二进制对象图片的方法 接口response是下图 显然,获取到的是一堆乱码,前端需要将其解析出来,百度之后发现解析二进制文档流的写法

    2024年02月15日
    浏览(62)
  • Vue3 - 详细实现下载从服务端返回的文件流 Blob 对象教程,前端下载后端接口返回的文件流并自动保存到本地,支持任何格式的文件下载(从后端拿到二进制文件流 Blob 对象,前端实现点击下载功能)

    调用服务端(后端)接口拿到文件流,通过前端下载并保存到本地。 本文 实现了在 vue3 项目中,通过后端接口返回的二进制文件流 Blob 对象,在前端进行点击下载并保存到用户本地,任何格式的文件都可以轻松下载, 保证您直接复制代码,改个请求地址就可以使用了, 如下

    2024年02月04日
    浏览(201)
  • 二进制与十进制的转换【相互转换, C++】

    二进制转十进制: 以字符串的形式读入二进制串。 获得该字符串的位数,即二进制的最高位是多少。 从左往右遍历 == 从高位往低位展开! 核心:按权展开,按位相加。 代码: 十进制转换为二进制: 思路: 十进制转化为 x x x 进制采用的是除 x x x 取余法(从下往上取余数

    2024年02月12日
    浏览(63)
  • Python中二进制十进制转换

            hello大家好,今天我想和大家分享一下在Python中进制转换加减法的方法。         比如现在我们需要求100 + 10,然后需要将结果110以二进制的形式返回,又或者我们现在有一个小需求,就是要计算二进制1010和二进制1011的和是多少,然后依旧以二进制的形式返回

    2024年02月16日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包