JS 将 blob url 转换为 Base64 文件

2024-03-03

有如下代码:

console.log(blob);
var reader = new window.FileReader();
reader.onloadend = function() {            
  console.log(reader.result);
};
reader.readAsDataURL(blob);

斑点是'blob:http://localhost:3000/e3c23a22-75b1-4b83-b39a-75104d1909b9'并且我收到以下错误:

TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.

如何修复此错误并将 Blob 转换为 Base64 编码图像?提前致谢!


我知道这是一个老问题,但我最近遇到了这个问题,我花了一段时间才解决它。所以我将回答这个问题,以防有人再次遇到这个问题。

首先,我认为变量的命名blob很混乱。Blob URL and 斑点对象是不同的东西。这个答案 https://stackoverflow.com/a/30881444/9478849很好地解释了 Blob URL 是什么。我认为你应该将其重命名为如下。

var blobUrl = 'blob:http://localhost:3000/e3c2...'

然后,函数readAsDataURL of FileReader需要一个斑点对象作为其参数。你给它的是变量blob,这是一个Blob URL.

所以你需要做的是:

  1. 恢复斑点对象用于创建Blob URL
  2. Use readAsDataURL转换恢复的斑点对象到 base64 网址

这是我找到的代码这个答案 https://stackoverflow.com/a/16179887/9478849:

var blob = new Blob(["Hello, world!"], { type: 'text/plain' });
var blobUrl = URL.createObjectURL(blob);

var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';

xhr.onload = function() {
   var recoveredBlob = xhr.response;

   var reader = new FileReader;

   reader.onload = function() {
     var blobAsDataUrl = reader.result;
     window.location = blobAsDataUrl;
   };

   reader.readAsDataURL(recoveredBlob);
};

xhr.open('GET', blobUrl);
xhr.send();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS 将 blob url 转换为 Base64 文件 的相关文章

  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • IE从哪个版本开始支持Object.create(null)?

    您可以通过多种方式在 JavaScript 中创建对象 creates an object which makes the Object prototype of data var data1 new Object Object liter
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • 如何制作没有 ng-repeat 的模板并使用 Angular-drag-and-drop-lists 将数据传递到 $scope?

    我想用角度拖放列表 https github com marceljuenemann angular drag and drop lists使用我自己的网格模板到所见即所得编辑器 如何构建我自己的 HTML 模板而不需要ng repeat因
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • 在未越狱的 iOS 设备上启用/禁用 Wifi

    我的内部应用程序需要这个 我想在 ios 设备上切换 wifi 任何框架都可用 我尝试了以下代码 但它没有为我提供任何帮助 这不会改变我的 wifi 设置 Class BluetoothManager objc getClass Bluet
  • 更改index.html nginx kubernetes部署

    我有这样的部署 我能够在我的一个 Pod 上编辑索引页面 但如何将其提交到部署映像 因此 当我扩展应用程序时 所有新的 Pod 都将具有相同的图像并编辑了索引 这对我有用 apiVersion v1 kind Pod metadata na
  • 使用 Id 以外的属性查询 DocumentDB

    我想查询 DocumentDB 数据库中的文档 我想使用 LINQ 处理 DocumentDB 查询并想要查询 facebookUsername 字段 如果我使用下面的代码来查询标准 Id 字段 它工作正常 但是当我尝试使用 faceboo
  • PHP 中是否可以声明静态方法和非静态方法?

    我可以将对象中的方法声明为静态方法和非静态方法 并且与调用静态方法的名称相同吗 我想创建一个具有静态方法 send 和调用静态函数的非静态方法的类 例如 class test private text public static funct
  • 如何使用callkit获取来电号码

    如何使用 Call Kit 框架以编程方式获取来电电话号码 我尝试使用 cxcallobserver 类 但没有用 任何建议最有帮助 使用 CallKit 的呼叫阻止和识别功能 iOS 10 中的新增功能 时 要阻止或识别的电话号码会在来电
  • 不在异步方法中等待任务的注意事项

    我正在开发一个 Web API 项目 该项目使用 Azure 的托管缓存服务将数据库结果缓存在内存中 以缩短响应时间并减少数据库的重复流量 当尝试将新项目放入缓存时 有时会抛出特定于缓存的异常 代码为DataCacheErrorCode R
  • 如何使用 Paramiko 运行 sudo? (Python)

    我尝试过的 invoke shell then channel send su然后发送密码导致不是root invoke shell 进而channel exec command导致 通道已关闭 错误 transport open sess
  • python * 运算符的正确名称?

    操作员的正确名称是什么 as in function args 解压 解压 还有别的吗 在 Ruby 和 Perl 6 中 这被称为 splat 我认为大多数人 如果你这么称呼的话 那些社区会明白你的意思 The Python教程 docs
  • SQL Server 2000 - 调试死锁

    我正在寻找有关如何调试和解决 SQL Server 2000 数据库中的死锁问题的建议 有人建议我使用跟踪标志 1024 和 3605 我发现它们可以提供以下信息 1024 此跟踪标志返回参与死锁的锁的类型以及受影响的当前命令 3605 此
  • 如何让背景图像跨越网格布局

    我有一个网格布局 假设第一行有 2 行 2 列 第二行有 3 列 它们之间的网格间隙为 10px 给每个网格一个背景图像是没有问题的 但是 如果我希望它们都具有相同的背景图像 该背景图像从左上角网格开始并继续 跨越直到右下角网格 所有网格上
  • 递归Kaatsuba 乘法不起作用?

    我正在尝试实施唐叶乘法 https en wikipedia org wiki Karatsuba algorithm通过递归调用 下面的代码应该可以工作 但我一直得到错误的答案 有什么想法吗 public static long kara
  • Java RandomString类[重复]

    这个问题在这里已经有答案了 可能的重复 HangMan RandomString 类 https stackoverflow com questions 13818297 hangman randomstring class 以下是方向 创
  • 将 UITableView 添加到现有 ViewController

    我正在尝试添加一个UITableView到现有的UIViewController以编程方式 My run h文件有这个 interface runTests UIViewController
  • 将 process.env.NODE_ENV 与 String 进行比较

    为什么当我比较这两个时我得到false const production process env NODE ENV production 即使当我设置process env NODE ENV到生产我仍然得到false value Why E
  • 获取python项目使用的所有模块/包

    我有一个 python GUI 应用程序 现在我需要知道应用程序链接到的所有库 这样我就可以检查所有库的许可证兼容性 我尝试过使用 strace 但 strace 似乎会报告所有包 即使应用程序未使用它们 而且 我尝试了 python Mo
  • 如何更改 mysql 表列默认值?

    我有一个带有 type 列的表timestamp默认值current timestamp并更新至current timestamp每次更新时 我想删除此列上的 更新时 功能 怎样写alter语句呢 我尝试了以下方法 ALTER TABLE
  • 模块在角度模块中没有导出成员错误

    我想创建一个功能模块来处理上传的前端 上传组件 html没有错误
  • 从 Eclipse 插件使用 Jython

    当从 Eclipse 插件运行时 我很难让 jython 正常工作 我有一个简单的对象工厂 它加载符合 Java 接口的 python 模块 所有这些在独立模式下都可以正常工作 然而 当我将其打包为 Eclipse 插件时 我根据一些变量收
  • gnu sort - 默认缓冲区大小

    我已阅读全文文档 http www gnu org software coreutils manual html node sort invocation html sort invocation对于 gnu sort 并在线搜索 但我找不
  • JS 将 blob url 转换为 Base64 文件

    有如下代码 console log blob var reader new window FileReader reader onloadend function console log reader result reader readA