我有一个 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 中的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 base64 编码的图像保存到磁盘?

如何使用 javascript 获取 base64 编码图像的地址

从 mime 字节验证 base64 编码图像

如何从 html 图像中获取 base64 编码数据

将base 64编码字符串转换为图像

将 base64 编码图像添加到 Microsoft Word 文档