Laravel - 如何获取图像内容大小?

时间:2020-12-22 08:28:21

标签: php laravel image

用户发送的数据不是图像文件,而是其内容。如何在不制作文件的情况下获取它的大小并使用 filesize 和类似的东西?

以图片内容为例:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAASwCAYAA......

是否可以创建一个公式来计算图像内容的大小?类似于 strlen($imageContent)

2 个答案:

答案 0 :(得分:0)

您可以创建一个文件然后快速删除。

$data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAASwCAYAA......';
list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);
file_put_contents('/tmp/image.png', $data);

$size = getimagesize('/tmp/image.png');
unlink(/tmp/image.png);

答案 1 :(得分:0)

您需要在 8bit 上使用 mb_strlen 编码:

$data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAASwCAYAA......';
list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

$size = mb_strlen($data, '8bit');
相关问题