PHPでファイルサイズを取得するにはfilesize関数という便利なものがあり、引数にファイルパスを指定することで簡単に取得することができる。

filesize($file);

しかし、バイナリデータを受け取ってこれからファイルとして保存するような場合においては、filesize関数でファイルサイズを取得することはできない。

例えば保存するファイルサイズに上限を設けたい場合など、事前にバイナリデータのファイルサイズを取得する必要がある。

今回はバイナリデータのファイルサイズを取得する最も簡単な方法を紹介する。

strlen関数を使う

$data = base64_decode($file);
$fileSize = strlen($data);

まず、base64エンコードされて渡された$fileをデコードする。

そしてstrlen関数の引数にデータを渡すことでbyte単位のファイルサイズを取得できる。