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 になり、同じオブジェクトで再移動はできない。 保存に失敗した場合は未移動のままなので、一時ファイルが有効なら保存先を直して再試行できる。 |