Php 使用yii在阵列中上载多个文件
我已经创建了一个表单,在这个链接后面的数组中有一个字段 并在数组中创建了一个文件字段,如下所示Php 使用yii在阵列中上载多个文件,php,file-upload,yii,Php,File Upload,Yii,我已经创建了一个表单,在这个链接后面的数组中有一个字段 并在数组中创建了一个文件字段,如下所示 echo $form->fileField($m, "[$i]myfile"); 但现在我不知道我要在控制器中做什么来保存文件路径和文件名等。我可以保存其他信息,但不能保存上传文件。我试过这个,但运气不好 $imageUpload = CUploadedFile::getInstance($models[$i],'name'); 尝试这种方式,但首先确保您的表单类型是 <?php $f
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
//控制器启动时的化身上载
$upload_file=cuploaddedfile::getInstance($model,'avatar');
$main_image=null;
如果($U文件和$model->validate())
{
$main_image=time();
$model->avatar=$upload_file;#使用文件名初始化模型属性
$model->avatar->saveAs(Yii::app()->basePath。“/../images/profile images/”$main_image);//这将上载选定的图像文件
}
//控制器端头像上传
此方法需要浏览器支持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'