【PHP】ファイルサイズを取得して条件によって処理を分ける方法

【PHP】ファイルサイズを取得して条件によって処理を分ける方法 PHP

PHPでは、ファイルサイズを取得してそのサイズに応じた処理を実行することが可能です。この記事では、filesize() 関数を使ってファイルサイズを取得し、条件によって異なる処理を行う方法を解説します。

ファイルサイズを取得する基本的な方法

PHPでは filesize() 関数を使って、ファイルのバイト数を取得できます。

$file = 'sample.txt';

if (file_exists($file)) {
    $size = filesize($file); // バイト単位のサイズ
    echo "ファイルサイズ: " . $size . " バイト";
} else {
    echo "ファイルが存在しません。";
}

サイズをKBやMBに変換する例

バイト単位では分かりづらいため、KBやMBに変換することもよくあります。

$kb = round($size / 1024, 2); // KB
$mb = round($size / (1024 * 1024), 2); // MB

echo "ファイルサイズ: {$kb} KB / {$mb} MB";

ファイルサイズによって処理を分岐する方法

たとえば、2MB(=2×1024×1024バイト)を超えるファイルはエラーとして処理する場合、以下のように条件分岐が可能です。

$limit = 2 * 1024 * 1024; // 2MB

if ($size > $limit) {
    echo "ファイルサイズが大きすぎます。アップロードできません。";
} else {
    echo "ファイルサイズは許容範囲内です。処理を続行します。";
}

実用例:アップロードファイルのサイズチェック

アップロードされたファイルのサイズチェックには $_FILES グローバル変数を使います。

if (isset($_FILES['upload_file'])) {
    $size = $_FILES['upload_file']['size'];
    $limit = 2 * 1024 * 1024; // 2MB

    if ($size > $limit) {
        echo "アップロードファイルが2MBを超えています。";
    } else {
        echo "アップロード可能なサイズです。";
    }
}

まとめ

  • filesize() を使うことでファイルサイズをバイト単位で取得できます。
  • round() を使ってKBやMBに変換すると、ユーザーにとって分かりやすい表示になります。
  • サイズに応じて if 文で処理を分けることで、安全なファイル操作が可能です。