// Generate the image file
var image = Canvas2Image.saveAsPNG(canvas, true);
image.id = "canvasimage";
canvas.parentNode.replaceChild(image, canvas);
var url = 'hidden.php',
data = $('#canvasimage').attr('src');
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
base64data : data
}
});
您需要从该字符串中提取base64图像数据,对其进行解码,然后将其保存到磁盘中,您不需要GD,因为它已经是一个PNG。
$data = 'data:image/png;base64,AAAFBfj42Pj4';
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('/tmp/image.png', $data);
作为单行语句:
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
提取、解码和检查错误的一种有效方法是:
if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
$data = substr($data, strpos($data, ',') + 1);
$type = strtolower($type[1]); // jpg, png, gif
if (!in_array($type, [ 'jpg', 'jpeg', 'gif', 'png' ])) {
throw new \Exception('invalid image type');
}
$data = str_replace( ' ', '+', $data );
$data = base64_decode($data);
if ($data === false) {
throw new \Exception('base64_decode failed');
}
} else {
throw new \Exception('did not match data URI with image data');
}
file_put_contents("img.{$type}", $data);
从现在开始,我就被难住了。根据我所读到的内容,我相信我应该使用PHP的imagecreatefromstring函数,但我不确定如何从base64编码的字符串创建一个实际的PNG映像并将其存储在服务器上。请救命!
问题内容: 我正在使用Nihilogic的“ Canvas2Image” JavaScript工具将画布图形转换为PNG图像。现在,我需要使用PHP将此工具生成的base64字符串转换为服务器上的实际PNG文件。 简而言之,我当前正在做的是使用Canvas2Image在客户端生成一个文件,然后检索base64编码的数据,并使用AJAX将其发送到服务器: 此时,“ hidden.php”收到的数据块
问题内容: 我正在使用Nihilogic的“ Canvas2Image” JavaScript工具将画布图形转换为PNG图像。现在,我需要使用PHP将此工具生成的base64字符串转换为服务器上的实际PNG文件。 简而言之,我目前正在做的是使用Canvas2Image在客户端生成一个文件,然后检索base64编码的数据,并使用AJAX将其发送到服务器: 此时,“ hidden.php”收到的数据块
问题内容: 我有这样的JavaScript代码 我的PHP代码是这样的 执行此代码时,我得到了一个零尺寸的png文件图像?我的代码有什么问题? 问题答案: 我最近不得不自己做。 首先,我将canvasData放入一个隐藏字段中,并将其发布到我的PHP页面中。 它以以下格式返回: 您需要首先拆分数据,因为这是标题信息。其余的是编码数据。 然后,在服务器上创建映像: 然后阅读以完成我想做的事情。 我非
我在后端的知识不是最好的。。。 我在这方面有问题。 我有一个ng2上传图像,从那里它将对api进行post req,但是我希望有一个服务器(来自节点的http服务器)只在那里添加文件,但我不知道如何从这里开始:( so ng2(FE)- 这些是我的文件upload.provider.js const fs=require('fs'); trister.controller.js 我一直得到这样的输
问题内容: 我正在使用以下代码从我的 Android应用程序中 拍照: 我正在通过POST将此字符串发送到我的PHP服务器,并将其接收到。我有一个数据库,其中有一个type字段。我试图保存在,但它被保存为损坏的图像。我尝试将另存为,但是无论如何也无法正常工作。 我想做三件事: 将图像保存到服务器端数据库(BLOB) 显示图像到网页 将其发送回Android应用。 我在 理解 上述任务所需的不同格式