check_upload_size()
は、ユーザーがアップロードしようとしているファイルサイズが WordPress のアップロード制限内に収まっているかどうかを検証する関数です。
主にファイルアップロード時のバリデーション処理として使用され、ファイルサイズの上限を超えるとエラーを返します。特に独自アップローダーを実装する際に、ファイル容量制限のチェックとして役立ちます。
基本構文
$result = check_upload_size( $file );
$file
:アップロード対象のファイル情報($_FILES['input_name']
のような配列形式)- 戻り値は、正常なら
true
、サイズ制限に違反していればWP_Error
オブジェクトが返ります。
引き数と戻り値
引数名 | 型 | 説明 |
---|---|---|
$file | array | $_FILES 配列の1要素。アップロードされたファイルの情報を含む連想配列。 |
戻り値名 | 型 | 説明 |
---|---|---|
$file | array | 元の $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
を増やす。もしくは .htaccess
や wp-config.php
にて設定変更。
マルチサイト環境で制限が厳しい
マルチサイトではネットワーク管理者がアップロード制限(upload_filetypes
, upload_size_limit
)を設定している場合がある。
解決方法
ネットワーク管理画面 → 「ネットワーク設定」から制限を変更。
Q&A
まとめ
check_upload_size()
は、WordPress におけるファイルアップロード前の容量チェックを行うための便利な関数です。
$_FILES
配列と組み合わせて、動的にファイルサイズ制限の検証が可能です。アップロード制限に関するトラブルを事前に防ぐために、ユーザー入力チェックや独自アップローダーの実装時に積極的に活用しましょう。
コメント