3

我创建了一个自定义产品配置器,它将画布元素保存为 base64 编码图像。当我在浏览器中将图像作为图像 src 回显时,它可以正常工作。

所以像这样的工作:

$base64Image = $_POST['dataUrl'];
echo '<img src="'.$base64Image.'" />';

我的问题是codeigniter不会将此base64图像src添加到会话中,可能是因为它太大了。我尝试了一些人们用来将图像写入服务器的方法,但它们都会抛出错误。有谁知道我如何将此 base64 字符串写入服务器上的图像,例如 images/custom 文件夹中的“myimage.png”?

任何帮助表示赞赏。

4

2 回答 2

15

你也可以使用

$decoded=base64_decode($base64Image);
file_put_contents('newImage.JPG',$decoded);

参考链接:http: //j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png.html

于 2012-10-31T17:25:47.033 回答
2

使用tempnam()在可由脚本写入的目录中获取唯一的文件名。您可以将会话变量“thisUsersTempFile”映射到该文件名。

或者,如果它不是临时的,您可以将关联存储在其他地方。如果您需要清理 tmp 文件,您可能需要这样做,因为我认为您无法挂钩会话破坏。您可以轮询现有会话并删除与已销毁会话关联的 tmpfile。您可以为此使用 cron 作业。

于 2012-10-31T17:26:12.280 回答