【发布时间】:2020-07-20 11:25:33
【问题描述】:
TL;DR
有没有办法将直接可用的 base64/BLOB 图像数据发送到 javascript?
我正在尝试从 Laravel 的控制器返回的 page.blade.php 向我的 Vue 组件发送一个数组(包含字符串和 img)。
更多详情
我知道数据编码是我的问题,json_encode($my_string_data) 仅适用于 UTF-8,但不适用于 IMG 数据。 json_encode($my_image_data) 会抛出错误malformed utf-8 characters possibly incorrectly encoded image。
我在控制器中发出 1 个请求,然后发出 2 个 DB 查询,并结合两个响应(字符串和 MEDIUMBLOB/img 数据),然后将其作为数组返回到我的刀片文件中的 blade.php是将 img 数据作为 props 的 vue 组件。
我想知道的可能解决方案:
- 如何让这个 img 数据直接被 javascript 使用?
- 如果 #1 不可行,我该如何转换这个 javascript 可直接读取的 img 数据?
- 如果 #2 不可能,我如何将此 img 数据转换为 JSON-able
json_encode($my_image_data)?
我只是假设数据库从 BLOB 列返回的 IMG 数据是 Base64,mb_detect_encoding()-ing 包含 IMG 数据的变量总是返回 false,所以我一开始不知道它是什么。我所知道的是必须将此数据转换为 UTF-8 或任何 JSON 格式供 JS 使用。
ATM,我仍在尝试解决 #3。
【问题讨论】:
-
几天前我遇到了同样的问题。我使用了base64encode和decode。
-
所以你在输出时解码了 IMG DATA 以显示对吗?
-
按照你的方式。使用 PHP,您可以对 blob 文本进行 base64encode。然后使用 json_encode 就可以了。然后使用javascript,您可以使用
atob解码base64encoded 字符串并再次获取博客文本。 scotch.io/tutorials/…
标签: javascript php laravel vue.js