Загрузить несколько файлов в массиве с YII

Я создал форму с полем в массиве по этой ссылке http://www.yiiframework.com/doc/guide/1.1/en/form.table

и создал поле файла в массиве, как это

echo $form->fileField($m, "[$i]myfile");

Но теперь я понятия не имею, что я собираюсь делать в контроллере, чтобы сохранить пути к файлам, имя файла и т. Д. Я могу сохранить другую информацию, но не файл загрузки. Я пытался с этим, но не повезло.

$imageUpload = CUploadedFile::getInstance($models[$i],'name');

0

Решение

Попробуйте таким образом, но сначала убедитесь, что ваш тип формы

<?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
0

Другие решения

Этот метод должен поддерживать браузер 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

0

По вопросам рекламы [email protected]