图片上传- PHP从数据uri获取文件大小


image uploading - php get file size from data uri

我有一个表单上传插件在我的表单中使用data uri上传图像,如

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

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

我可以得到图像的尺寸(width &高度)使用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));

如果你想要更准确,不要忘记去掉标题("data:image/jpeg"等)