我在将图像作为字符串在Javascript和PHP之间发送时遇到问题。到目前为止,我有:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL
作为从JS传递到PHP的字符串,这将被验证,因为图像将以“原样”加载到chrome中。
我正在使用PHP
$im = imagecreatefromstring($data);
这只是错误,如果我删除数据:image / png; base64位,它可以工作,但是当涉及到较大的文件时,这只是不起作用。
我只是想知道我在这里错过了什么。
答案 0 :(得分:1)
你需要删除canvas.toDataURL(“image / png; base64”)中吐出的标题;
你可以用javascript:
来做var imgData= canvas.toDataURL("image/png;base64");
var postData = {drawing:imgData.substr(22)};
或使用php
substr($_POST['drawing'],22);
答案 1 :(得分:0)
我得到了同样的错误,但如果我试试这个:
echo '<img src="'.$data.'"/>';
然后显示图片......
进入shell时,这不起作用:
echo 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cI' | base64 -d - >file.png
我有 base64:无效条目。
如果我添加“=”:
echo 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL=' | base64 -d - >file.png
然后很好。但是对于imagecreatefromstring()来说还不错。
你能告诉我们你是如何在javascript中获得base64编码的内容的?
请参阅此评论:http://www.php.net/manual/en/function.base64-decode.php#102113
修改强>: 这段代码有用......
<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL';
$data = base64_decode($data);
header('Content-Type: image/png');
echo $data;
?>