【发布时间】:2017-03-14 06:12:36
【问题描述】:
通过 ajax 请求从前端发布 base64 编码的图像数据字符串:
var req = {
url: url,
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: 'data=' + data, // data=iVBORw0KGgoAAAAN...
};
$http(req).then(...);
目的地是一个php脚本:
$data = $_POST['data'];
file_put_contents("tmp/".time().".png", $data);
然而,所有图像似乎都已损坏,尽管它们都具有正确的宽度高度,但它们的内容为零。
我的问题是如何解决这个问题,从而制作正确的图像?
- 我有一个 base64 编码的图像数据字符串
iVBORw0KGgoAAAAN...,其中data:(.*)base64,部分被剪切。 - 原始imagedata是ok的,直接从一个canvas
canvas.toDataURL()获取 - PHP 是必须的。
【问题讨论】:
-
我在数据传输过程中弄清楚了。数据略有变化。例如
...ggBYYgD7goE+Xxw...将变为...ggBYYgD7goE Xxw... -
也许这就是原因。但是我该如何解决呢?
-
您在 php 脚本中获取的数据,复制该图像内容并粘贴到 codebeautify.org/base64-to-image-converter。检查您是否能够看到图像
-
什么是
$http?你在使用 JavaScript 库吗?该库是否负责对发布请求有效负载进行编码? -
$http是一个角度模块
标签: javascript php base64