CMultiFileUpload
| Пакет | system.web.widgets |
|---|---|
| Наследование | class CMultiFileUpload » CInputWidget » CWidget » CBaseController » CComponent |
| С момента | 1.0 |
| Исходный код | framework/web/widgets/CMultiFileUpload.php |
Основано на плагине jQuery Multi File Upload. Информация о загруженных файлах доступна через $_FILES[имя-виджета], которая представляет собой массив загруженных файлов. Обратите внимание, что необходимо установить атрибут 'enctype' в enclosing форме в 'multipart/form-data'.
Пример:
<?php
$this->widget('CMultiFileUpload', array(
'model'=>$model,
'attribute'=>'files',
'accept'=>'jpg|gif',
'options'=>array(
'onFileSelect'=>'function(e, v, m){ alert("onFileSelect - "+v) }',
'afterFileSelect'=>'function(e, v, m){ alert("afterFileSelect - "+v) }',
'onFileAppend'=>'function(e, v, m){ alert("onFileAppend - "+v) }',
'afterFileAppend'=>'function(e, v, m){ alert("afterFileAppend - "+v) }',
'onFileRemove'=>'function(e, v, m){ alert("onFileRemove - "+v) }',
'afterFileRemove'=>'function(e, v, m){ alert("afterFileRemove - "+v) }',
),
));
?>
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| accept | строка | типы файлов, которые разрешены (например, "gif|jpg"). | CMultiFileUpload |
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| attribute | строка | атрибут, связанный с этим виджетом. | CInputWidget |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| denied | строка | сообщение, отображаемое, когда тип файла не разрешен. | CMultiFileUpload |
| duplicate | строка | сообщение, отображаемое, когда файл появляется дважды. | CMultiFileUpload |
| file | строка | шаблон сообщения для отображения имени загруженного файла | CMultiFileUpload |
| htmlOptions | массив | дополнительные HTML-параметры, которые будут отображаться в теге ввода | CInputWidget |
| id | строка | Возвращает ID виджета или генерирует новый, если запрошено. | CWidget |
| max | целое число | максимальное количество файлов, которые можно загрузить. | CMultiFileUpload |
| model | CModel | модель данных, связанная с этим виджетом. | CInputWidget |
| name | строка | имя элемента ввода. | CInputWidget |
| options | массив | дополнительные параметры, которые могут быть переданы в конструктор объекта multifile js. | CMultiFileUpload |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| remove | строка | метка для кнопки удаления. | CMultiFileUpload |
| selected | строка | сообщение, отображаемое при выборе файла. | CMultiFileUpload |
| skin | смешанное | имя скина, которое будет использоваться этим виджетом. | CWidget |
| value | строка | значение элемента ввода | CInputWidget |
| viewPath | строка | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
Защищенные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| clientOptions | массив | параметры javascript | CMultiFileUpload |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к данному компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кэширование фрагмента. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть отформатировано указанным представлением. | CBaseController |
| beginWidget() | Создает виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создает виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения к данному компоненту. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые поведения к данному компоненту. | CComponent |
| endCache() | Заканчивает кэширование фрагмента. | CBaseController |
| endClip() | Заканчивает запись клипа. | CBaseController |
| endContent() | Заканчивает отображение содержимого. | CBaseController |
| endWidget() | Заканчивает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл скрипта представления по имени представления. | CWidget |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли для данного события присоединённые обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | CWidget |
| raiseEvent() | Возбуждает событие. | CComponent |
| registerClientScript() | Регистрирует необходимый CSS и JavaScript. | CMultiFileUpload |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполняет виджет. | CMultiFileUpload |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| getClientOptions() | Возвращает параметры javascript. | CMultiFileUpload |
| hasModel() | Определяет, связан ли этот виджет с моделью данных. | CInputWidget |
| resolveNameID() | CInputWidget |
Подробное описание свойств
accept свойство
public string $accept;
Типы файлов, которые разрешены (например, "gif|jpg"). Обратите внимание, что серверная сторона всё равно должна проверить, соответствуют ли загруженные файлы разрешённым типам.
clientOptions свойство только для чтения
protected array getClientOptions()
параметры javascript
denied свойство
public string $denied;
сообщение, отображаемое, когда тип файла не разрешён.
duplicate свойство
public string $duplicate;
сообщение, отображаемое, когда файл встречается дважды.
Свойство file (доступно начиная с v1.1.3)
public string $file;
шаблон сообщения для отображения имени загруженного файла
Свойство max
public integer $max;
максимальное количество файлов, которые можно загрузить. Если -1, ограничений нет. По умолчанию -1.
Свойство options (доступно начиная с v1.1.7)
public array $options;
дополнительные параметры, которые можно передать в конструктор объекта multifile js.
Свойство remove
public string $remove;
метка для кнопки удаления. По умолчанию «Удалить».
Свойство selected
public string $selected;
сообщение, отображаемое при выборе файла.
Подробное описание методов
getClientOptions() метод
protected array getClientOptions() | ||
| {return} | массив | параметры javascript |
protected function getClientOptions()
{
$options=$this->options;
foreach(array('onFileRemove','afterFileRemove','onFileAppend','afterFileAppend','onFileSelect','afterFileSelect') as $event)
{
if(isset($options[$event]) && !($options[$event] instanceof CJavaScriptExpression))
$options[$event]=new CJavaScriptExpression($options[$event]);
}
if($this->accept!==null)
$options['accept']=$this->accept;
if($this->max>0)
$options['max']=$this->max;
$messages=array();
foreach(array('remove','denied','selected','duplicate','file') as $messageName)
{
if($this->$messageName!==null)
$messages[$messageName]=$this->$messageName;
}
if($messages!==array())
$options['STRING']=$messages;
return $options;
}
registerClientScript() метод
public void registerClientScript() |
public function registerClientScript()
{
$id=$this->htmlOptions['id'];
$options=$this->getClientOptions();
$options=$options===array()? '' : CJavaScript::encode($options);
$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('multifile');
$cs->registerScript('Yii.CMultiFileUpload#'.$id,"jQuery(\"#{$id}\").MultiFile({$options});");
}
Регистрирует необходимые CSS и JavaScript.
run() метод
public void run() |
public function run()
{
list($name,$id)=$this->resolveNameID();
if(substr($name,-2)!=='[]')
$name.='[]';
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$this->htmlOptions['id']=$id;
$this->registerClientScript();
echo CHtml::fileField($name,'',$this->htmlOptions);
}
Выполняет виджет. Этот метод регистрирует все необходимые клиентские скрипты и отображает загрузчик множественных файлов.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CMultiFileUpload