我有一个 base64 编码的 png,如何将图像写入 PHP 中的文件?
Posted
技术标签:
【中文标题】我有一个 base64 编码的 png,如何将图像写入 PHP 中的文件?【英文标题】:I have a base64 encoded png, how do I write the image to a file in PHP? 【发布时间】:2010-12-04 17:11:12 【问题描述】:当我使用 base64 编码时,在 php 中创建图像文件 (PNG) 的正确方法是什么?
我一直在玩:
file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);
我需要解码吗?我应该使用 gd 库吗?
【问题讨论】:
【参考方案1】:我最好的猜测是,在将其写入文件之前,您只需在 $_REQUEST['data']
上调用 base64_decode()
。这应该足够了:)。
【讨论】:
叹息,这很容易,应该在问问题之前做到这一点!谢谢。【参考方案2】:我想你会想用base64_decode() 解码,除非你只是像他们在这里HERE 那样使用它。
我可以肯定的是,您需要在使用 $_REQUEST['id'] 之前对其进行清理。
【讨论】:
【参考方案3】:您需要使用 base64_decode()。和。有时这还不够。这是您需要的所有代码:
$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
//saving
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);
附:我使用此代码从 html 画布获取 PNG 图像。
【讨论】:
是否可以验证此图像数据?像往常一样,您将在上传图片之前验证各种事情以上是关于我有一个 base64 编码的 png,如何将图像写入 PHP 中的文件?的主要内容,如果未能解决你的问题,请参考以下文章