MENU

check_upload_size()

check_upload_size() は、ユーザーがアップロードしようとしているファイルサイズが WordPress のアップロード制限内に収まっているかどうかを検証する関数です。

主にファイルアップロード時のバリデーション処理として使用され、ファイルサイズの上限を超えるとエラーを返します。特に独自アップローダーを実装する際に、ファイル容量制限のチェックとして役立ちます。

目次

基本構文

$result = check_upload_size( $file );
  • $file:アップロード対象のファイル情報($_FILES['input_name'] のような配列形式)
  • 戻り値は、正常なら true、サイズ制限に違反していれば WP_Error オブジェクトが返ります。

引き数と戻り値

引数名説明
$filearray$_FILES 配列の1要素。アップロードされたファイルの情報を含む連想配列。
戻り値名説明
$filearray元の $file 配列に 'error' キーが追加されて返されます。制限を超えている場合はエラーメッセージが格納されます。

使用例

タグを使った使用例

if ( isset( $_FILES['my_file'] ) ) {
  $result = check_upload_size( $_FILES['my_file'] );

  if ( is_wp_error( $result ) ) {
    echo 'ファイルサイズが大きすぎます: ' . $result->get_error_message();
  } else {
    echo 'アップロード可能です。';
  }
}

このコードでは、ユーザーがアップロードしようとしているファイルサイズがサーバー制限内であるかをチェックし、エラーメッセージも表示されます。

注意点

  • この関数は PHP の upload_max_filesize や WordPress の upload_size_limit に基づいて判定しています。
  • アップロードサイズの制限は、php.ini の設定値やマルチサイト設定に依存することがあります。
  • $_FILES 配列形式でファイル情報を渡す必要があります(tmp_name, size, name などを含む)。

よく一緒に使われる関数

wp_handle_upload()

if ( check_upload_size( $_FILES['my_file'] ) === true ) {
  $upload = wp_handle_upload( $_FILES['my_file'], array( 'test_form' => false ) );
}

アップロードチェック後に実際のファイルアップロード処理を行う際に併用されます。

is_wp_error()

$result = check_upload_size( $_FILES['my_file'] );
if ( is_wp_error( $result ) ) {
  echo $result->get_error_message();
}

エラーの有無を判定し、エラー詳細を取得するのに使います。

wp_max_upload_size()

$max_size = wp_max_upload_size();
echo '最大アップロードサイズは: ' . size_format( $max_size );

現在の最大アップロードサイズ(バイト)を取得して、参考として表示するのに役立ちます。

想定されるトラブル

小さいファイルでもエラーになる

ファイルが小さくても php.ini の設定が極端に小さい (upload_max_filesize, post_max_size) とエラーになる。

解決方法

サーバー管理者に依頼して upload_max_filesize を増やす。もしくは .htaccesswp-config.php にて設定変更。

マルチサイト環境で制限が厳しい

マルチサイトではネットワーク管理者がアップロード制限(upload_filetypes, upload_size_limit)を設定している場合がある。

解決方法

ネットワーク管理画面 → 「ネットワーク設定」から制限を変更。

Q&A

どのタイミングで check_upload_size() を使うべきですか?

ユーザーがファイルをアップロードする直前、バリデーションチェックとして使います。

複数ファイルに対応していますか?

配列形式で一つ一つチェックする必要があります。ループ処理で $_FILES['my_file']['name'][0] などに対応。

サーバーのアップロード上限を確認する方法は?

wp_max_upload_size() を使用することで取得できます。

まとめ

check_upload_size() は、WordPress におけるファイルアップロード前の容量チェックを行うための便利な関数です。

$_FILES 配列と組み合わせて、動的にファイルサイズ制限の検証が可能です。アップロード制限に関するトラブルを事前に防ぐために、ユーザー入力チェックや独自アップローダーの実装時に積極的に活用しましょう。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次