Я создал форму с полем в массиве по этой ссылке http://www.yiiframework.com/doc/guide/1.1/en/form.table
и создал поле файла в массиве, как это
echo $form->fileField($m, "[$i]myfile");
Но теперь я понятия не имею, что я собираюсь делать в контроллере, чтобы сохранить пути к файлам, имя файла и т. Д. Я могу сохранить другую информацию, но не файл загрузки. Я пытался с этим, но не повезло.
$imageUpload = CUploadedFile::getInstance($models[$i],'name');
Попробуйте таким образом, но сначала убедитесь, что ваш тип формы
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'user-form',
'htmlOptions'=>array(
'enctype' => 'multipart/form-data'
),
)); ?>//Avatar Upload on controller start$uploaded_file = CUploadedFile::getInstance($model,'avatar');
$main_image=null;
if($uploaded_file and $model->validate())
{
$main_image =time()."-".$model->username.".".$uploaded_file->getExtensionName();
$model->avatar=$uploaded_file;#initialize model attribute with file name
$model->avatar->saveAs(Yii::app()->basePath."/../images/profile-images/".$main_image);//this will upload selected image file}
//Avatar Upload on controller end
Этот метод должен поддерживать браузер HTML5.
В файле просмотра:
$form=$this->beginWidget('CActiveForm', array(
'id'=>'ca-form',
'enableAjaxValidation'=>false,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
...
echo $form->fileField($m, "myfile[]", array('multiple'=>true));
В контроллере:
$imageUploads = CUploadedFile::getInstances($models,'myfile');
foreach ($imageUploads as $imageUpload) {
...// Here you can use $imageUpload->name.
}
Обратите внимание на ‘s’ getInstances