Spec-Zone.ru › Yii 1.1

CUploadedFile

Пакет system.web
Наследование class CUploadedFile » CComponent
С момента 1.0
Исходный код framework/web/CUploadedFile.php
CUploadedFile представляет информацию о загруженном файле.

Вызовите getInstance, чтобы получить экземпляр загруженного файла, а затем используйте saveAs, чтобы сохранить его на сервере. Вы также можете получить другую информацию о файле, включая имя, временное имя, тип, размер и ошибку.

Свойства public

Свойство Тип Описание Определено
error целое число Возвращает код ошибки, описывающий состояние загрузки этого файла. CUploadedFile
extensionName строка имя расширения файла для имени. CUploadedFile
hasError булево указывает, есть ли ошибка с загруженным файлом. CUploadedFile
name строка исходное имя загружаемого файла CUploadedFile
size целое число фактический размер загруженного файла в байтах CUploadedFile
tempName строка путь к загруженному файлу на сервере. CUploadedFile
type строка тип MIME загруженного файла (например, "image/gif"). CUploadedFile

Методы public

Метод Описание Определено
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__construct() Конструктор. CUploadedFile
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__toString() Вывод в виде строки. CUploadedFile
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик события к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик события. CComponent
disableBehavior() Отключает присоединенное поведение. CComponent
disableBehaviors() Отключает все присоединенные поведения к этому компоненту. CComponent
enableBehavior() Включает присоединенное поведение. CComponent
enableBehaviors() Включает все присоединенные поведения к этому компоненту. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
getError() Возвращает код ошибки, описывающий состояние загрузки этого файла. CUploadedFile
getEventHandlers() Возвращает список присоединенных обработчиков событий для события. CComponent
getExtensionName() Возвращает имя расширения файла для имени. Имя расширения не включает символ точки. Возвращается пустая строка, если у имени нет имени расширения. CUploadedFile
getHasError() Возвращает, есть ли ошибка с загруженным файлом. Проверьте error для получения подробной информации об коде ошибки. CUploadedFile
getInstance() Возвращает экземпляр указанного загруженного файла. CUploadedFile
getInstanceByName() Возвращает экземпляр указанного загруженного файла. CUploadedFile
getInstances() Возвращает все загруженные файлы для заданного атрибута модели. CUploadedFile
getInstancesByName() Возвращает массив экземпляров, начинающихся с указанного имени массива. CUploadedFile
getName() Возвращает исходное имя загружаемого файла. CUploadedFile
getSize() Возвращает фактический размер загруженного файла в байтах. CUploadedFile
getTempName() Возвращает путь к загруженному файлу на сервере. Обратите внимание, что это временный файл, который будет автоматически удален PHP после обработки текущего запроса. CUploadedFile
getType() Возвращает тип MIME загруженного файла (например, "image/gif"). Поскольку этот тип MIME не проверяется на стороне сервера, не принимайте это значение как должное. Вместо этого используйте CFileHelper::getMimeType, чтобы определить точный тип MIME. CUploadedFile
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики для события с заданным именем. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
reset() Очищает загруженные экземпляры CUploadedFile. CUploadedFile
saveAs() Сохраняет загруженный файл. CUploadedFile

Защищённые методы

Метод Описание Определён в
collectFilesRecursive() Обрабатывает входящие файлы для getInstanceByName. CUploadedFile
prefetchFiles() Изначально обрабатывает суперглобальную переменную $_FILES для более удобного использования. CUploadedFile

Подробное описание свойств

error свойство только для чтения

public integer getError()

Возвращает код ошибки, описывающий состояние загрузки этого файла.

См. также

  • http://www.php.net/manual/en/features.file-upload.errors.php

extensionName свойство только для чтения

public string getExtensionName()

Имя расширения файла для name. Имя расширения не включает символ точки. Возвращается пустая строка, если у name нет имени расширения.

hasError свойство только для чтения

public boolean getHasError()

Указывает, есть ли ошибка с загруженным файлом. Проверьте error для получения подробной информации об коде ошибки.

name свойство только для чтения

public string getName()

Исходное имя загружаемого файла

size свойство только для чтения

public integer getSize()

Фактический размер загруженного файла в байтах

tempName свойство только для чтения

public string getTempName()

Путь к загруженному файлу на сервере. Обратите внимание, что это временный файл, который будет автоматически удалён PHP после обработки текущего запроса.

type свойство только для чтения

public string getType()

MIME-тип загруженного файла (например, "image/gif"). Поскольку этот MIME-тип не проверяется на стороне сервера, не полагайтесь на это значение. Вместо этого используйте CFileHelper::getMimeType для определения точного MIME-типа.

Подробное описание методов

__construct() метод

public void __construct(string $name, string $tempName, string $type, integer $size, integer $error)
$name string Исходное имя загружаемого файла
$tempName string Путь к загруженному файлу на сервере.
$type string MIME-тип загруженного файла (например, "image/gif").
$size integer Фактический размер загруженного файла в байтах
$error integer Код ошибки
Исходный код: framework/web/CUploadedFile.php#164 (показать)
public function __construct($name,$tempName,$type,$size,$error)
{
    
$this->_name=$name;
    
$this->_tempName=$tempName;
    
$this->_type=$type;
    
$this->_size=$size;
    
$this->_error=$error;
}

Конструктор. Используйте getInstance для получения экземпляра загруженного файла.

__toString() метод

public string __toString()
{return} string Строковое представление объекта
Исходный код: framework/web/CUploadedFile.php#179 (показать)
public function __toString()
{
    return 
$this->_name;
}

Вывод в строковом формате. Это магический метод PHP, который возвращает строковое представление объекта. Здесь реализация возвращает имя загруженного файла.

collectFilesRecursive() метод

protected static void collectFilesRecursive(string $key, mixed $names, mixed $tmp_names, mixed $types, mixed $sizes, mixed $errors)
$key string ключ для идентификации загруженного файла: имя класса и индексы подмассива
$names mixed имена файлов, предоставленные PHP
$tmp_names mixed временные имена файлов, предоставленные PHP
$types mixed типы файлов, предоставленные PHP
$sizes mixed размеры файлов, предоставленные PHP
$errors mixed ошибки загрузки, предоставленные PHP
Исходный код: framework/web/CUploadedFile.php#144 (показать)
protected static function collectFilesRecursive($key, $names, $tmp_names, $types, $sizes, $errors)
{
    if(
is_array($names))
    {
        foreach(
$names as $item=>$name)
            
self::collectFilesRecursive($key.'['.$item.']', $names[$item], $tmp_names[$item], $types[$item], $sizes[$item], $errors[$item]);
    }
    else
        
self::$_files[$key] = new CUploadedFile($names, $tmp_names, $types, $sizes, $errors);
}

Обрабатывает входящие файлы для getInstanceByName.

getError() метод

public integer getError()
{return} integer Код ошибки
Исходный код: framework/web/CUploadedFile.php#252 (показать)
public function getError()
{
    return 
$this->_error;
}

Возвращает код ошибки, описывающий состояние загрузки этого файла.

См. также

  • http://www.php.net/manual/en/features.file-upload.errors.php

getExtensionName() метод

public string getExtensionName()
{return} string Имя расширения файла для name. Имя расширения не включает символ точки. Возвращается пустая строка, если у name нет имени расширения.
Исходный код: framework/web/CUploadedFile.php#271 (показать)
public function getExtensionName()
{
    return 
CFileHelper::getExtension($this->_name);
}

getHasError() метод

public boolean getHasError()
{return} boolean Указывает, есть ли ошибка с загруженным файлом. Проверьте error для получения подробной информации об коде ошибки.
Исходный код: framework/web/CUploadedFile.php#261 (показать)
public function getHasError()
{
    return 
$this->_error!=UPLOAD_ERR_OK;
}

getInstance() метод

public static CUploadedFile getInstance(CModel $model, string $attribute)
$model CModel экземпляр модели
$attribute string имя атрибута. Для табличной загрузки файлов это может быть в формате "[$i]имяАтрибута", где $i обозначает целочисленный индекс.
{return} CUploadedFile экземпляр загруженного файла. Возвращает Null, если для указанного атрибута модели файл не загружен.
Исходный код: framework/web/CUploadedFile.php#57 (показать)
public static function getInstance($model, $attribute)
{
    return 
self::getInstanceByName(CHtml::resolveName($model, $attribute));
}

Возвращает экземпляр указанного загруженного файла. Файл должен быть загружен с помощью CHtml::activeFileField.

См. также

  • getInstanceByName

getInstanceByName() метод

public static CUploadedFile getInstanceByName(string $name)
$name string имя поля ввода файла.
{return} CUploadedFile экземпляр загруженного файла. Возвращает Null, если для указанного имени файл не загружен.
Исходный код: framework/web/CUploadedFile.php#81 (показать)
public static function getInstanceByName($name)
{
    if(
null===self::$_files)
        
self::prefetchFiles();

    return isset(
self::$_files[$name]) && self::$_files[$name]->getError()!=UPLOAD_ERR_NO_FILE ? self::$_files[$name] : null;
}

Возвращает экземпляр указанного загруженного файла. Имя может быть обычной строкой или строкой, похожей на элемент массива (например, 'Post[imageFile]', или 'Post[0][imageFile]').

getInstances() метод

public static CUploadedFile[] getInstances(CModel $model, string $attribute)
$model CModel экземпляр модели
$attribute строка имя атрибута. Для загрузки табличных файлов это может быть в формате "[$i]имяАтрибута", где $i - целочисленный индекс.
{return} CUploadedFile[] массив объектов CUploadedFile. Пустой массив возвращается, если для данного атрибута не найдено доступного файла.
Исходный код: framework/web/CUploadedFile.php#69 (показать)
public static function getInstances($model, $attribute)
{
    return 
self::getInstancesByName(CHtml::resolveName($model, $attribute));
}

Возвращает все загруженные файлы для заданного атрибута модели.

getInstancesByName() метод

public static CUploadedFile[] getInstancesByName(string $name)
$name строка имя массива файлов
{return} CUploadedFile[] массив объектов CUploadedFile. Пустой массив возвращается, если не найдено подходящей загрузки. Обратите внимание, что этот массив будет содержать все файлы из всех подмассивов, независимо от их вложенности.
Исходный код: framework/web/CUploadedFile.php#99 (показать)
public static function getInstancesByName($name)
{
    if(
null===self::$_files)
        
self::prefetchFiles();

    
$len=strlen($name);
    
$results=array();
    foreach(
array_keys(self::$_files) as $key)
        if(
0===strncmp($key, $name.'[', $len+1) && self::$_files[$key]->getError()!=UPLOAD_ERR_NO_FILE)
            
$results[] = self::$_files[$key];
    return 
$results;
}

Возвращает массив экземпляров, начиная с указанного имени массива.

Если было загружено и сохранено несколько файлов как 'Files[0]', 'Files[1]', 'Files[n]'..., вы можете получить их все, передав 'Files' в качестве имени массива.

getName() метод

public string getName()
{return} строка исходное имя загружаемого файла
Исходный код: framework/web/CUploadedFile.php#214 (показать)
public function getName()
{
    return 
$this->_name;
}

getSize() метод

public integer getSize()
{return} целое число фактический размер загруженного файла в байтах
Исходный код: framework/web/CUploadedFile.php#242 (показать)
public function getSize()
{
    return 
$this->_size;
}

getTempName() метод

public string getTempName()
{return} строка путь к загруженному файлу на сервере. Обратите внимание, что это временный файл, который будет автоматически удален PHP после обработки текущего запроса.
Исходный код: framework/web/CUploadedFile.php#224 (показать)
public function getTempName()
{
    return 
$this->_tempName;
}

getType() метод

public string getType()
{return} строка MIME-тип загруженного файла (например, "image/gif"). Поскольку этот MIME-тип не проверяется на стороне сервера, не полагайтесь на это значение. Вместо этого используйте CFileHelper::getMimeType для определения точного MIME-типа.
Исходный код: framework/web/CUploadedFile.php#234 (показать)
public function getType()
{
    return 
$this->_type;
}

prefetchFiles() метод

protected static void prefetchFiles()
Исходный код: framework/web/CUploadedFile.php#126 (показать)
protected static function prefetchFiles()
{
    
self::$_files = array();
    if(!isset(
$_FILES) || !is_array($_FILES))
        return;

    foreach(
$_FILES as $class=>$info)
        
self::collectFilesRecursive($class, $info['name'], $info['tmp_name'], $info['type'], $info['size'], $info['error']);
}

Изначально обрабатывает суперглобальную переменную $_FILES для более удобного использования. Только для внутреннего использования.

reset() метод (доступен с версии 1.1.4)

public static void reset()
Исходный код: framework/web/CUploadedFile.php#117 (показать)
public static function reset()
{
    
self::$_files=null;
}

Очищает загруженные экземпляры CUploadedFile. Этот метод в основном используется скриптами тестов для подготовки фикстуры.

saveAs() метод

public boolean saveAs(string $file, boolean $deleteTempFile=true)
$file строка путь к файлу, используемому для сохранения загруженного файла
$deleteTempFile логическое значение удалять ли временный файл после сохранения. Если true, вы не сможете сохранить загруженный файл повторно в текущем запросе.
{return} логическое значение true, если файл успешно сохранён.

В некоторых исключительных случаях, например, при недостаточных правах доступа для записи в указанный путь, генерируется предупреждение PHP.
Исходный код: framework/web/CUploadedFile.php#196 (показать)
public function saveAs($file,$deleteTempFile=true)
{
    if(
$this->_error==UPLOAD_ERR_OK)
    {
        if(
$deleteTempFile)
            return 
move_uploaded_file($this->_tempName,$file);
        elseif(
is_uploaded_file($this->_tempName))
            return 
copy($this->_tempName, $file);
        else
            return 
false;
    }
    else
        return 
false;
}

Сохраняет загруженный файл. Примечание: этот метод использует метод move_uploaded_file() php. Таким образом, если целевой файл ($file) уже существует, он перезаписывается.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CUploadedFile

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API