1 follower

クラス yii\web\UploadedFile

継承yii\web\UploadedFile » yii\base\BaseObject
実装yii\base\Configurable
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/web/UploadedFile.php

UploadedFile は、アップロードされたファイルの情報を示します。

getInstance() を呼び出してアップロードされたファイルのインスタンスを取得し、saveAs() を使用してサーバーに保存できます。また、$name$tempName$type$size$error$fullPath を含む、ファイルに関するその他の情報を照会することもできます。

UploadedFile の詳細と使用方法については、アップロード処理に関するガイド記事を参照してください。

公開プロパティ

継承されたプロパティを隠す

プロパティ 説明 定義元
$baseName string 元のファイルベース名。 yii\web\UploadedFile
$error integer このファイルのアップロード状態を示すエラーコード。 yii\web\UploadedFile
$extension string ファイル拡張子。 yii\web\UploadedFile
$fullPath string|null ブラウザによって送信されたフルパス。 yii\web\UploadedFile
$hasError boolean アップロードされたファイルにエラーがあるかどうか。 yii\web\UploadedFile
$name string アップロードされるファイルの元の名前 yii\web\UploadedFile
$size integer アップロードされたファイルの実際のサイズ(バイト単位) yii\web\UploadedFile
$tempName string サーバー上のアップロードされたファイルのパス。 yii\web\UploadedFile
$type string アップロードされたファイルの MIME タイプ (例: "image/gif")。 yii\web\UploadedFile

公開メソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\BaseObject
__construct() UploadedFile コンストラクタ。 yii\web\UploadedFile
__get() オブジェクトプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されている、つまり定義されていて null でないかどうかを確認します。 yii\base\BaseObject
__set() オブジェクトプロパティの値を設定します。 yii\base\BaseObject
__toString() 文字列出力。 yii\web\UploadedFile
__unset() オブジェクトプロパティを null に設定します。 yii\base\BaseObject
canGetProperty() プロパティが読み取り可能かどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティが設定可能かどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
getBaseName() yii\web\UploadedFile
getExtension() yii\web\UploadedFile
getHasError() yii\web\UploadedFile
getInstance() 指定されたモデル属性のアップロードされたファイルを返します。 yii\web\UploadedFile
getInstanceByName() 指定されたファイル入力名に従ってアップロードされたファイルを返します。 yii\web\UploadedFile
getInstances() 指定されたモデル属性のすべてのアップロードされたファイルを返します。 yii\web\UploadedFile
getInstancesByName() 指定されたファイル入力名に対応するアップロードされたファイルの配列を返します。 yii\web\UploadedFile
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject
reset() ロードされた UploadedFile インスタンスをクリーンアップします。 yii\web\UploadedFile
saveAs() アップロードされたファイルを保存します。 yii\web\UploadedFile

保護されたメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
copyTempFile() 一時ファイルを指定されたファイルにコピーします yii\web\UploadedFile

プロパティの詳細

継承されたプロパティを隠す

$baseName public プロパティ

元のファイルベース名。

public string $baseName null
$error public プロパティ

このファイルのアップロード状態を示すエラーコード。

参照 https://www.php.net/manual/en/features.file-upload.errors.php

public integer $error null
$extension public プロパティ

ファイル拡張子。

public string $extension null
$fullPath public プロパティ (バージョン 2.0.46 から利用可能)

ブラウザによって送信されたフルパス。この値は常に実際のディレクトリ構造を含んでいるわけではなく、信頼できないことに注意してください。PHP 8.1 以降で利用可能です。

public string|null $fullPath null
$hasError public プロパティ

アップロードされたファイルにエラーがあるかどうか。詳細なエラーコード情報については、$error を確認してください。

public boolean $hasError null
$name public プロパティ

アップロードされるファイルの元の名前

public string $name null
$size public プロパティ

アップロードされたファイルの実際のサイズ(バイト単位)

public integer $size null
$tempName public プロパティ

サーバー上のアップロードされたファイルへのパス。これは一時ファイルであり、現在のリクエストが処理された後、PHPによって自動的に削除されることに注意してください。

public string $tempName null
$type public プロパティ

アップロードされたファイルの MIME タイプ(例: "image/gif")。この MIME タイプはサーバー側でチェックされないため、この値を鵜呑みにしないでください。代わりに、正確な MIME タイプを決定するには、yii\helpers\FileHelper::getMimeType() を使用してください。

public string $type null

メソッドの詳細

継承されたメソッドを隠す

__call() public メソッド

定義元: yii\base\BaseObject::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、不明なメソッドが呼び出されたときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出す場合

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public メソッド

UploadedFile コンストラクタ。

public void __construct ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

                public function __construct($config = [])
{
    $this->_tempResource = ArrayHelper::remove($config, 'tempResource');
    parent::__construct($config);
}

            
__get() public メソッド

定義元: yii\base\BaseObject::__get()

オブジェクトプロパティの値を返します。

このメソッドは、$value = $object->property; を実行するときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public メソッド

定義元: yii\base\BaseObject::__isset()

プロパティが設定されている、つまり定義されていて null でないかどうかを確認します。

このメソッドは、isset($object->property) を実行するときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

プロパティが定義されていない場合は、false が返されることに注意してください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

指定されたプロパティが設定されている(nullではない)かどうか。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public メソッド

定義元: yii\base\BaseObject::__set()

オブジェクトプロパティの値を設定します。

このメソッドは、$object->property = $value; を実行するときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

__get() も参照してください。

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__toString() public メソッド

文字列出力。

これはオブジェクトの文字列表現を返すPHPマジックメソッドです。ここでの実装では、アップロードされたファイルの名前を返します。

public string __toString ( )
return string

オブジェクトの文字列表現

                public function __toString()
{
    return $this->name;
}

            
__unset() public メソッド

定義元: yii\base\BaseObject::__unset()

オブジェクトプロパティを null に設定します。

このメソッドは、unset($object->property)を実行したときに暗黙的に呼び出されるPHPマジックメソッドであるため、直接呼び出さないでください。

プロパティが定義されていない場合、このメソッドは何もしないことに注意してください。プロパティが読み取り専用の場合、例外がスローされます。

参照: https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() public メソッド

定義元: yii\base\BaseObject::canGetProperty()

プロパティが読み取り可能かどうかを示す値を返します。

プロパティが読み取り可能であるのは、次の場合です。

  • クラスが、指定された名前に関連付けられたゲッターメソッドを持っている場合(この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合($checkVarsがtrueの場合)。

参照: canSetProperty()

public boolean canGetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが読み取り可能かどうか

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public メソッド

定義元: yii\base\BaseObject::canSetProperty()

プロパティが設定可能かどうかを示す値を返します。

プロパティが書き込み可能であるのは、次の場合です。

  • クラスが、指定された名前に関連付けられたセッターメソッドを持っている場合(この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合($checkVarsがtrueの場合)。

参照: canGetProperty()

public boolean canSetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが書き込み可能かどうか

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static メソッド
2.0.14から非推奨。PHP 5.5以降では、代わりに ::class を使用してください。

定義元: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
copyTempFile() protected メソッド (バージョン 2.0.32 から利用可能)

一時ファイルを指定されたファイルにコピーします

protected integer|false copyTempFile ( $targetFile )
$targetFile string

コピー先のファイルのパス

return integer|false

コピーされたバイト数の合計、または失敗した場合はfalse

                protected function copyTempFile($targetFile)
{
    $target = fopen($targetFile, 'wb');
    if ($target === false) {
        return false;
    }
    $result = stream_copy_to_stream($this->_tempResource, $target);
    @fclose($target);
    return $result;
}

            
getBaseName() public メソッド

public string getBaseName ( )
return string

元のファイルベース名

                public function getBaseName()
{
    // https://github.com/yiisoft/yii2/issues/11012
    $pathInfo = pathinfo('_' . $this->name, PATHINFO_FILENAME);
    return mb_substr($pathInfo, 1, mb_strlen($pathInfo, '8bit'), '8bit');
}

            
getExtension() public メソッド

public string getExtension ( )
return string

ファイル拡張子

                public function getExtension()
{
    return strtolower(pathinfo($this->name, PATHINFO_EXTENSION));
}

            
getHasError() public メソッド

public boolean getHasError ( )
return boolean

アップロードされたファイルにエラーがあるかどうか。詳細なエラーコード情報については、$error を確認してください。

                public function getHasError()
{
    return $this->error != UPLOAD_ERR_OK;
}

            
getInstance() public static メソッド

指定されたモデル属性のアップロードされたファイルを返します。

ファイルは、yii\widgets\ActiveField::fileInput()を使用してアップロードする必要があります。

参照: getInstanceByName()

public static yii\web\UploadedFile|null getInstance ( $model, $attribute )
$model yii\base\Model

データモデル

$attribute string

属性名。属性名には配列インデックスを含めることができます。たとえば、表形式のファイルアップロードの場合は '[1]file'、ファイル配列の要素の場合は 'file[1]' です。

return yii\web\UploadedFile|null

アップロードされたファイルのインスタンス。指定されたモデル属性に対してファイルがアップロードされていない場合は、null が返されます。

                public static function getInstance($model, $attribute)
{
    $name = Html::getInputName($model, $attribute);
    return static::getInstanceByName($name);
}

            
getInstanceByName() public static メソッド

指定されたファイル入力名に従ってアップロードされたファイルを返します。

名前は、プレーンな文字列、または配列要素のような文字列(例:'Post[imageFile]'、または 'Post[0][imageFile]')にすることができます。

public static yii\web\UploadedFile|null getInstanceByName ( $name )
$name string

ファイル入力フィールドの名前。

return yii\web\UploadedFile|null

アップロードされたファイルのインスタンス。指定された名前に対してファイルがアップロードされていない場合は、null が返されます。

                public static function getInstanceByName($name)
{
    $files = self::loadFiles();
    return isset($files[$name]) ? new static($files[$name]) : null;
}

            
getInstances() public static メソッド

指定されたモデル属性のすべてのアップロードされたファイルを返します。

public static yii\web\UploadedFile[] getInstances ( $model, $attribute )
$model yii\base\Model

データモデル

$attribute string

属性名。属性名には、表形式のファイルアップロードの場合の配列インデックスを含めることができます。例:'[1]file'。

return yii\web\UploadedFile[]

UploadedFileオブジェクトの配列。指定された属性に対して利用可能なファイルが見つからなかった場合は、空の配列が返されます。

                public static function getInstances($model, $attribute)
{
    $name = Html::getInputName($model, $attribute);
    return static::getInstancesByName($name);
}

            
getInstancesByName() public static method

指定されたファイル入力名に対応するアップロードされたファイルの配列を返します。

これは主に、複数のファイルが 'files[0]', 'files[1]', 'files[n]'... のようにアップロードされ保存された場合に、'files' を名前として渡すことでそれらすべてを取得するために使用されます。

public static yii\web\UploadedFile[] getInstancesByName ( $name )
$name string

ファイルの配列の名前

return yii\web\UploadedFile[]

UploadedFile オブジェクトの配列。適切なアップロードが見つからなかった場合は空の配列が返されます。この配列には、どれだけ深くネストされていても、すべてのサブ配列のすべてのファイルが含まれることに注意してください。

                public static function getInstancesByName($name)
{
    $files = self::loadFiles();
    if (isset($files[$name])) {
        return [new static($files[$name])];
    }
    $results = [];
    foreach ($files as $key => $file) {
        if (strpos($key, "{$name}[") === 0) {
            $results[] = new static($file);
        }
    }
    return $results;
}

            
hasMethod() public method

定義元: yii\base\BaseObject::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

デフォルトの実装は、PHP関数 method_exists() の呼び出しです。PHPのマジックメソッド __call() を実装した場合は、このメソッドをオーバーライドできます。

public boolean hasMethod ( $name )
$name string

メソッド名

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public method

定義元: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

プロパティは以下の場合に定義されます。

  • クラスに、指定された名前に関連付けられたゲッターまたはセッターメソッドがある場合(この場合、プロパティ名は大小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合($checkVarsがtrueの場合)。

こちらも参照してください

public boolean hasProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public method

定義元: yii\base\BaseObject::init()

オブジェクトを初期化します。

このメソッドは、オブジェクトが指定された構成で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
}

            
reset() public static method

ロードされた UploadedFile インスタンスをクリーンアップします。

このメソッドは主にテストスクリプトがフィクスチャを設定するために使用されます。

public static void reset ( )

                public static function reset()
{
    self::$_files = null;
}

            
saveAs() public method

アップロードされたファイルを保存します。

ターゲットファイル $file が既に存在する場合は上書きされます。

$errorも参照してください。

public boolean saveAs ( $file, $deleteTempFile true )
$file string

アップロードされたファイルを保存するために使用されるファイルパスまたはパスエイリアス。

$deleteTempFile boolean

保存後に一時ファイルを削除するかどうか。trueの場合、現在のリクエストでアップロードされたファイルを再度保存することはできません。

return boolean

ファイルが正常に保存された場合はtrue

                public function saveAs($file, $deleteTempFile = true)
{
    if ($this->hasError) {
        return false;
    }
    $targetFile = Yii::getAlias($file);
    if (is_resource($this->_tempResource)) {
        $result = $this->copyTempFile($targetFile);
        return $deleteTempFile ? @fclose($this->_tempResource) : (bool) $result;
    }
    return $deleteTempFile ? move_uploaded_file($this->tempName, $targetFile) : copy($this->tempName, $targetFile);
}