Naify\Http\UploadedFile クラス

PHP が受信した 1 件のアップロードファイル。

RequestContext から取得し、受信エラーの確認と保存先への移動に使う。 未選択・受信失敗もこの型で表し、理由は getError() で確認できる。 isValid() は受信成功とアップロード由来の確認であり、内容の安全性検査ではない。

使用例

$file = $ctx->getUploadedFile('avatar');
if ($file !== null && $file->isValid()) {
    $file->moveTo($destination);
}

設計意図

保存先・許可する種類・サイズはアプリが決める。クライアントの名前や MIME type を保存先や検証済み情報として暗黙に利用しない。

プロパティ

名前型説明
private $moved bool 移動成功後は再利用しない
private $temporaryPath string PHP の一時ファイルパス
private $size int 受信サイズ(バイト)
private $error int UPLOAD_ERR_* 定数
private $clientFilename string クライアント申告名(未検証)
private $clientMediaType string クライアント申告 MIME type(未検証)

メソッド

メソッド説明
public __construct(string $temporaryPath, int $size, int $error, string $clientFilename, string $clientMediaType): 受信情報を保持する。ファイルの読み取りや移動はここでは行わない。
通常は RequestContext::getUploadedFile() から取得する。
ここで検査するのは引数の形式だけで、実ファイルの受信状態は isValid() で確認する。
public getClientFilename(): string クライアントが申告したファイル名を取得する。
表示用の元情報。パス除去や名前の検証は行わないため、保存名はアプリ側で決める。
public getClientMediaType(): string クライアントが申告した MIME タイプを取得する。
ファイル内容から判定した値ではない。形式を制限する場合はアプリ側で内容を検証する。
public getSize(): int 受信時に記録されたファイルサイズを取得する。
public getError(): int PHP のアップロードエラーコードを取得する。
UPLOAD_ERR_OK が受信成功、UPLOAD_ERR_NO_FILE が未選択を表す。
moveTo() の成否では書き換わらず、受信時の値を保持する。
public isMoved(): bool このオブジェクトの moveTo() が成功したかを確認する。
public isValid(): bool PHP が受信した、まだ移動していないアップロードかを確認する。
受信成功・未移動であり、一時ファイルを PHP の is_uploaded_file() が認識する場合に true。
許可する形式やサイズの検査は含まない。通常のローカルファイルを渡しても false になる。
public moveTo(string $destination): void アプリが指定したローカルファイルパスへ移動する。
親ディレクトリは作成しない。同名ファイルは PHP の move_uploaded_file と同様に上書きする。
成功後は isMoved() が true、isValid() が false になり、同じオブジェクトで再移動はできない。
保存に失敗した場合は未移動のままなので、一時ファイルが有効なら保存先を直して再試行できる。