广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS中如何将base64转换成file
  • 817
分享到

JS中如何将base64转换成file

JSbase64转filebase64转换成fileJSbase64file 2023-05-16 11:05:06 817人浏览 八月长安
摘要

目录js将base64转换成file将Base64转file对象,将图片转Base64js图片base64转file文件两种方式总结js将base64转换成file dataURLt

js将base64转换成file

dataURLtoBlob(dataurl, name) {//base64转file
      var arr = dataurl.split(','),
        mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]),
        n = bstr.length,
        u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new File([u8arr], name, {
        type: mime,
      })
    },
this.dataURLtoBlob(imgDataUrl,name)//imgDataUrl是base64格式编码  name是图片名字

将Base64转file对象,将图片转Base64

//将图片转换为Base64
function getImgToBase64(url,callback){
  var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d'),
    img = new Image;
  img.crossOrigin = 'Anonymous';
  img.onload = function(){
    canvas.height = img.height;
    canvas.width = img.width;
    ctx.drawImage(img,0,0);
    var dataURL = canvas.toDataURL('image/png');
    callback(dataURL);
    canvas = null;
  };
  img.src = url;
}
 
//将base64转换为文件对象
function dataURLtoFile(dataurl, filename) {
  var arr = dataurl.split(',');
  var mime = arr[0].match(/:(.*?);/)[1];
  var bstr = atob(arr[1]);
  var n = bstr.length; 
  var u8arr = new Uint8Array(n);
  while(n--){
      u8arr[n] = bstr.charCodeAt(n);
  }
  //转换成file对象
  return new File([u8arr], filename, {type:mime});
  //转换成成blob对象
  //return new Blob([u8arr],{type:mime});
}
//将图片转换为base64,再将base64转换成file对象
getImgToBase64('images/ruoshui.png',function(data){
   var myFile = dataURLtoFile(data,'testimgtestimgtestimg');
   console.log(myFile);
});
 
 
// 将 file 转 base64
    blobToDataURL (blob, cb) {
      const reader = new FileReader()
      reader.onload = function (evt) {
        cb(evt.target.result)
      }
      reader.readAsDataURL(blob)
    },

js图片base64转file文件两种方式

最近项目中需要实现把图片的base64编码转成file文件的功能,然后再上传至服务器。起初是直接通过new File()的方式进行转换,在各个主流的浏览器基本上都支持,Android也没问题,但是在iOS系统埋了个坑,ios11.4以下的系统上传失败。

定位bug发现是new File()这个方法不兼容ios系统,只能另辟蹊径,最后找到一个方法就是:

将base64转成blob ——> blob转成file

这种方式测试通过,解决了new File()不兼容ios系统问题。

下面将base64转file文件两种方式的代码贴出来:

1.通过new File()将base64转换成file文件,此方式需考虑浏览器兼容问题。

    //将base64转换为文件
    dataURLtoFile: function(dataurl, filename) { 
        var arr = dataurl.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]),
            n = bstr.length,
            u8arr = new Uint8Array(n);
        while (n--) {
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, { type: mime });
    },
 
 
    //调用
    var file = dataURLtoFile(base64Data, imgName);

2.先将base64转换成blob,再将blob转换成file文件,此方法不存在浏览器不兼容问题。

    //将base64转换为blob
    dataURLtoBlob: function(dataurl) { 
        var arr = dataurl.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]),
            n = bstr.length,
            u8arr = new Uint8Array(n);
        while (n--) {
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new Blob([u8arr], { type: mime });
    },
    //将blob转换为file
    blobToFile: function(theBlob, fileName){
       theBlob.lastModifiedDate = new Date();
       theBlob.name = fileName;
       return theBlob;
    },
    //调用
    var blob = dataURLtoBlob(base64Data);
    var file = blobToFile(blob, imgName);

目前方法二在项目中已经可以正常使用。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: JS中如何将base64转换成file

本文链接: https://www.lsjlt.com/news/209689.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS中如何将base64转换成file
    目录js将base64转换成file将Base64转file对象,将图片转Base64js图片base64转file文件两种方式总结js将base64转换成file dataURLt...
    99+
    2023-05-16
    JS base64转file base64转换成file JS base64 file
  • JS中怎么将base64转换成file
    本篇内容主要讲解“JS中怎么将base64转换成file”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中怎么将base64转换成file”吧!js将base64转换成filedataURLt...
    99+
    2023-07-06
  • html5如何将图片转换成base64
    这篇文章给大家分享的是有关html5如何将图片转换成base64的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。base64编码介绍base64是一种网络上常用的8bit字节代码的...
    99+
    2022-10-19
  • JS中将图片base64转file文件的两种方式
    目录1.通过new File()将base64转换成file文件,此方式需考虑浏览器兼容问题2.先将base64转换成blob,再将blob转换成file文件,此方法不存在浏览器不兼...
    99+
    2023-02-17
    js 图片base64转file文件 js base64转file
  • JS中base64和图片如何互相转换
    这篇文章将为大家详细讲解有关JS中base64和图片如何互相转换,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。js将图片转化为base64var img&nbs...
    99+
    2022-10-19
  • Android中的图片如何转换成Base64格式
    前言: Android手机客户端的图片数据上传到服务器中保存,首先需要将客户端的图片转换成Base64格式,然后才能通过网络上传到服务器中。 有两种方法可以实现: 让客户端将图片上传到服务器,将图片的网络URL告诉服务器 将图片转成...
    99+
    2023-09-02
    服务器 运维 android java Powered by 金山文档
  • vue如何实现将图像文件转换为base64
    这篇文章给大家分享的是有关vue如何实现将图像文件转换为base64的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。将图像文件转换为base64直入主题,上代码(其实用的还是FileReader)1、image转B...
    99+
    2023-06-29
  • 如何将HTML转换成PDF
    HTML转换成PDF:工具、用途、优缺点HTML(Hypertext Markup Language)是一种标记语言,用于创建和排版网页等电子文档。而PDF(Portable Document Format)则是由Adobe公司开发的一种电...
    99+
    2023-05-14
  • jupyter中如何将.ipynb转换成.py
    小编给大家分享一下jupyter中如何将.ipynb转换成.py,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!jupyter 写完的代码是在*.ipynb文件下的...
    99+
    2023-06-14
  • Java项目中如何将图片与base64 编码相互转换
    这期内容当中小编将会给大家带来有关Java项目中如何将图片与base64 编码相互转换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码:public static boolean&n...
    99+
    2023-05-31
    java base64 相互
  • 如何在php中将date转换成string
    今天就跟大家聊聊有关如何在php中将date转换成string,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语...
    99+
    2023-06-14
  • php中如何将数据转换成json
    这篇文章主要介绍“php中如何将数据转换成json”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中如何将数据转换成json”文章能帮助大家解决问题。使用PHP内置函数将关联数组转换为JSON在...
    99+
    2023-07-05
  • php如何将中文转换成拼音
    php中使用overtrue/pinyin拓展将中文转换成拼音:1.安装overtrue/pinyin拓展;2.使用Pinyin将中文转换成无音调的拼音;3.使用PINYIN_TONE将中文转换成带音调的拼音;在php中使用overtrue...
    99+
    2022-10-06
  • 如何在JavaScript中将string转换成json
    今天就跟大家聊聊有关如何在JavaScript中将string转换成json,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JavaScript中string转json的方法:1、使用...
    99+
    2023-06-14
  • php如何将object转换成数组中
    今天小编给大家分享一下php如何将object转换成数组中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在PHP中,可以使用...
    99+
    2023-07-06
  • Excel如何将xlsx转换成xls
    要将xlsx文件转换为xls文件,可以按照以下步骤操作:1. 打开Excel软件。2. 在Excel软件中,点击“文件”菜单选项。3...
    99+
    2023-10-18
    Excel
  • php如何将html转换成pdf
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。要将html转成pdf其实有很多种办法,比如我们可以使用html2pdf、mpdf、dompdf和tcpdf等方法。这四种开源库我们都可以使用composer...
    99+
    2021-02-24
    php html pdf
  • php如何将csv转换成xls
    这篇文章主要介绍“php如何将csv转换成xls”,在日常操作中,相信很多人在php如何将csv转换成xls问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何将csv转换成xls”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • java中如何将字符串转换成int
    在Java中,可以使用`Integer.parseInt()`方法将字符串转换为整数。下面是一个示例代码:```javaString...
    99+
    2023-09-09
    java
  • 如何在java中将Arrays.asList转换成数组
    如何在java中将Arrays.asList转换成数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作