我创建了一个自定义产品配置程序,它将canvas元素保存为base64编码图像。当我在浏览器中将图像作为图像src回显时,它可以正常工作。
所以这样的事情有效:
$base64Image = $_POST['dataUrl'];
echo '<img src="'.$base64Image.'" />';
我的问题是codeigniter不会将这个base64图像src添加到会话中,可能是因为它太大了。我尝试过一些人们用来将图像写入服务器的方法,它们都会抛出错误。有谁知道如何将这个base64字符串写入服务器上的图像,如images / custom文件夹中的'myimage.png'?
感谢任何帮助。
答案 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作业。