Base64编码图像的验证


Validation of Base64 encoded image

在我的cakephp程序中,我将base64编码的图像转换为图像,然后将其存储在文件夹中。

在转换之前如何验证该图像?

字符串类似于data:image/png;base64,iVBORw0KG.....
(图片可以是任何扩展名,不仅仅是png)

这个答案可能对处理图像有用。
这个答案对于验证图像可能很有用。

代码:

$data = 'data:image/png;base64,iVBORw0KG.....';
list($type, $data) = explode(';base64,', $data, 2);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);
if (imagecreatefromstring($data) == false) { echo "invalid_image"; die(); }
file_put_contents('/storage/folder/image.png', $data);

您可能还想限制文件类型。

您必须记住,您不能简单地信任从客户端发送的任何数据(如'data:image/png'),因此您必须依赖其他方式(一些php函数)