我在此链接http://www.yiiframework.com/doc/guide/1.1/en/form.table
之后创建了一个包含数组字段的表单并在数组中创建了一个像
这样的文件字段echo $form->fileField($m, "[$i]myfile");
但是现在我不知道我将在控制器中做什么来保存文件路径和文件名等。我能够保存其他信息但不能保存上传文件。我试过这个但没有运气。
$imageUpload = CUploadedFile::getInstance($models[$i],'name');
答案 0 :(得分: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
答案 1 :(得分: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.
}
注意getInstances的's'