Codeigniter |将Base64图像保存到文件

时间:2012-10-31 17:21:09

标签: php jquery codeigniter image-processing base64

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

所以这样的事情有效:

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

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

感谢任何帮助。

2 个答案:

答案 0 :(得分:12)

您也可以使用

$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

答案 1 :(得分:2)

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

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