用户发送的数据不是图像文件,而是其内容。如何在不制作文件的情况下获取它的大小并使用 filesize
和类似的东西?
以图片内容为例:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAASwCAYAA......
是否可以创建一个公式来计算图像内容的大小?类似于 strlen($imageContent)
。
答案 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');