php 从数据 uri 获取文件大小

php get file size from data uri

我的表单中有一个表单上传插件,它使用 data uri 上传图片,例如

$img = 'data:image/jpeg;base64,/9j/4QAYRXhpZ...............

我需要有文件大小限制,例如文件大小不能超过 1MB。

我可以使用 list($width, $height) = getimagesize($img); 获取图像尺寸(宽度和高度)。

如何获得相同的文件大小。 php 中是否有任何预定义函数,我可以使用它来获取 data uri

的文件大小

您可以使用 strlen 获取字符串(以及文件)的大小(以字节为单位)。 base64 数据比二进制数据大 ~1/3,所以不要忘记先 base64_decode

那么你的代码是:

$img = 'base64,/9j/4QAYRXhpZ...............';
echo 'File Size: ' . strlen(base64_decode($img));

如果您想更准确,请不要忘记去掉 headers("data:image/jpeg" 等)。