php – Yii CMultiFileUpload选择多个文件
发布时间:2020-12-13 16:52:40 所属栏目:PHP教程 来源:网络整理
导读:得到了答案 将多个文件上载到数据库以进行注册 ??尝试了很多方法,使用CMultiFileUpload小部件使多个文件上传可行.我已经检查并遵循以下链接 – http://www.yiiframework.com/forum/index.php/topic/47665-multiple-file-upload/ Yii多文件上传 但仍然没有运
得到了答案
将多个文件上载到数据库以进行注册 http://www.yiiframework.com/forum/index.php/topic/47665-multiple-file-upload/ Yii多文件上传 但仍然没有运气! 错误:存储数据但文件未上传 通知 <?php $this->widget('CMultiFileUpload',array( 'model'=>$model,'attribute' => 'documents','accept'=>'jpg|gif|png|doc|docx|pdf','denied'=>'Only doc,docx,pdf and txt are allowed','max'=>4,'remove'=>'[x]','duplicate'=>'Already Selected',) );?> 控制器代码 public function actionRegistration() { $model=new PatientRegistration; $this->performAjaxValidation($model); if(isset($_POST['PatientRegistration'])) { $model->attributes=$_POST['PatientRegistration']; if($model->validate()) { if(isset($_POST['PatientRegistration'])) { if($filez=$this->uploadMultifile($model,'documents','/Images/')) { $model->documents=implode(",",$filez); } $model->attributes=$_POST['PatientRegistration']; if($model->save()) { // $this->render('registration',array('model'=>$model)); $this->redirect(array('/patientregistration/patientview','id'=>$model->register_id)); } } } } $this->render('registration',array('model'=>$model)); } public function uploadMultifile($model,$attr,$path) { /* * path when uploads folder is on site root. * $path='/uploads/doc/' */ if($sfile=CUploadedFile::getInstances($model,$attr)){ foreach ($sfile as $i=>$file){ // $formatName=time().$i.'.'.$file->getExtensionName(); $fileName = "{$sfile[$i]}"; $formatName=time().$i.'_'.$fileName; $file->saveAs(Yii::app()->basePath.$path.$formatName); $ffile[$i]=$formatName; } return ($ffile); } } 添加CActiveForm小部件 'htmlOptions' => array( 'enctype' => 'multipart/form-data',), 因此,您可以使用此代码在yiiframework中上传多个文件 解决方法
这是Yii Framework中最简单的多文件上传代码
码 在控制器中 public function actionCreate() { $model = new Upload; echo Yii::app()->basePath.'/Images/'; if(isset($_POST['Upload'])) { if($filez=$this->uploadMultifile($model,'Document','/Images/')) { $model->Document=implode(",$filez); } $model->attributes=$_POST['Upload']; if ($model->save()) { $this->redirect(array('view','id' => $model->idUpload)); } } $this->render('create',array( 'model' => $model,)); } //Function for uploading and saving Multiple files public function uploadMultifile ($model,$path) { /* * path when uploads folder is on site root. * $path='/uploads/doc/' */ if($sfile=CUploadedFile::getInstances($model,$attr)){ foreach ($sfile as $i=>$file){ // $formatName=time().$i.'.'.$file->getExtensionName(); $fileName = "{$sfile[$i]}"; $formatName=time().$i.'_'.$fileName; $file->saveAs(Yii::app()->basePath.$path.$formatName); $ffile[$i]=$formatName; } return ($ffile); } } 通知 <?php $form=$this->beginWidget('CActiveForm',array( 'id'=>'upload-form',// Please note: When you enable ajax validation,make sure the corresponding // controller action is handling ajax validation correctly. // There is a call to performAjaxValidation() commented in generated controller code. // See class documentation of CActiveForm for details on this. 'enableAjaxValidation'=>false,'htmlOptions' => array( 'enctype' => 'multipart/form-data',)); ?> <?php $this->widget('CMultiFileUpload',array( 'model'=>$model,'attribute' => 'Document',) );?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |