zoukankan      html  css  js  c++  java
  • Base64转Blob

    最近碰见一个问题,a链接的href为base64,但在chrome下载时显示下载失败,经查询,base64过大会在某些浏览器上下载失败(如新版chrome),解决方法是将base64转为blob

    function dataURLtoBlob(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 });
    }
    a.href = URL.createObjectURL(dataURLtoBlob(e.target.result))

    备注:e.target.result为base64编码

    a链接的href不能直接连Blob对象,得通过URL.createObjectURL() 静态方法将File对象或Blob对象生成URL

    Data URL是一种协议,能将资源转换为base64编码的字符串,并存储于URL中,且能与File、Blob相互转换。

  • 相关阅读:
    方法的调用机制
    类的成员之二:方法
    类的成员之一:属性
    关键字static
    构造器
    this关键字
    递归方法(recursion)
    方法重载(二)
    GTID 跳过脚本
    mydumper 找不到libmysqlclient.so.20
  • 原文地址:https://www.cnblogs.com/yanze/p/10416966.html
Copyright © 2011-2022 走看看