Laravelでアップロードされたファイルのサイズ(容量)を取得する方法を紹介します。
getSizeを実行するだけ
リクエストされたファイルのサイズは、PHP標準の関数であるgetSizeを呼び出すことで取得できます。
// ファイルサイズを取得する
$filesize = $request->file("image")->getSize();
ファイルサイズを制限したいときは?
アップロードされたファイルサイズの上限を設定することもできます。
getSize関数でファイルサイズを取得し、ifで判定すればOKです。
// ファイルサイズを取得する
$filesize = $request->file("image")->getSize();
// 3MBを超えていたら、400 BadRequestエラーを返す
if ($filesize > 3145728) {
abort(400);
}
ここでは3MBを超えるファイルが送られた場合に、400エラーを返すサンプルを紹介しました。
より本格的なケースではバリデータを使います。
php.iniでもアップロードサイズの上限を設定することができますが、これはあくまで大きなファイルを送りつけられたときの予防的措置としてのものです。基本的にはフレームワーク側でのバリデーションが必要となります。
参考にしていただければ幸いです。
コメント