PHP

ファイルサイズを取得する

  1. 最終更新日:
  2. 公開日:

filesize関数を使ってファイルサイズ(容量)を取得し、ファイルが何バイトあるかを調べる方法について解説します。併せて、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)で出力する設定方法も解説していきます。

この記事のポイント

  • ファイルサイズ(容量)が何バイトあるかを確認する
  • バイトの単位をKB(キロバイト)、MB(メガバイト)、GB(ギガバイト)に調整して出力する

ファイルサイズが何バイトあるか確認する

ファイルサイズを調べるためのfilesize関数を使用して、指定したファイルが何バイトあるかを確認することができます。

PHP コード例

filesize("images/test.jpg");

バイト数を整数で返します。
もしファイルが存在しなかったり、アクセス権が無いなどでファイルサイズを取得できない場合は論理値で「false」を返し、次のようなWarningエラーが表示されます。

エラーの表示例

Warning: filesize(): stat failed for ../images/test.jpg in /test/index.php on line 1

使用例

ファイルが存在しない場合は上記のようにファイルサイズを取得できないため、file_exists関数であらかじめファイルの存在を確認してからfilesize関数を使うことが多いです。

PHP コード例

<?php

// ファイルサイズを調べたいファイルへのパス
$path = '/images/pic.jpg';

// あらかじめファイルが存在するか調べる
if( file_exists($path) ){

  // ファイルサイズを表示する
  echo "ファイルサイズは、". filesize($path) ."バイトです。";
}

ファイルが存在し、ファイルサイズを取得できた場合は次のようにメッセージが出力されます。

出力例

ファイルサイズは、614041バイトです。

ファイルが存在しない場合は何も出力しません。

ファイルサイズの単位をKB(キロバイト)に変更する

ファイルサイズの基本となる単位はB(バイト)ですが、KB(キロバイト)の単位で出力したい場合は次のように調整します。

PHP コード例

<?php

$path = '/images/pic.jpg';
$filesize = null;

if( file_exists($path) ){
  
  // ファイルサイズを取得
  $filesize = filesize($path);

  if( 1000 <= $filesize ) {
    echo "ファイルサイズは".($filesize / 1000)."KBです。";
  } else {
    echo "ファイルサイズは、{$filesize}バイトです。";
  }  
}

上記のコードは1KB1000Bとして計算しているため、計算式は「$filesize / 1000」としています。

取得したファイルサイズが1000バイト以上ある場合のみKBへ変換し、1KB(1000バイト)未満だった場合は標準のバイトで表示します。

出力例

ファイルサイズは39.939KBです。

もし1KB1024Bで計算するときは、10001024に置き換えて実行します。

ファイルサイズの単位をMB(メガバイト)に変更する

取得するファイルサイズの単位をMB(メガバイト)にします。
1MB1000B、そして1MB1000KBなので、バイトからメガバイトの値を取得する時は「1000 * 1000」で計算します。

PHP コード例

<?php

$path = '/images/pic.jpg';
$filesize = null;
$kilobyte = 1000;
$megabyte = 1000 * $kilobyte;

if( file_exists($path) ){
  
  $filesize = filesize($path);
  
  if( $megabyte <= $filesize ) {
    echo "ファイルサイズは".($filesize / $megabyte)."MBです。";
  } else if( $kilobyte <= $filesize ) {
    echo "ファイルサイズは".($filesize / $kilobyte)."KBです。";
  } else {
    echo "ファイルサイズは、{$filesize}バイトです。";
  }  
}

ファイルサイズが1,000,000バイト以上ある場合のみMBへ変換し、1KB未満だったときはKBで表示し、1KB(1000バイト)未満だったときは標準のバイトで表示します。

出力例

ファイルサイズは13.424042MBです。

ファイルサイズの単位をGB(ギガバイト)に変更する

KBMBと同じ容量で、単位をGB(ギガバイト)に変更します。
1GB1000MBなので、単位で出力したい場合は次のように調整します。

PHP コード例

<?php

$path = '/images/pic.jpg';
$filesize = null;
$kilobyte = 1000;
$megabyte = 1000 * $kilobyte;
$gigabyte = 1000 * $megabyte;

if( file_exists($path) ){
  
  $filesize = filesize($path);

  echo "ファイルサイズは".($filesize / $gigabyte)."GBです。";  
}

上記のコードはファイルサイズに関わらず、一律でGB単位で表示するようにしています。

出力例

ファイルサイズは0.013424042GBです。

以上、PHPでのファイルサイズの取得方法と単位の調整についてでした。

記事一覧

関連記事