Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii CMultipileUpload选择多个文件_Php_Yii - Fatal编程技术网

Php Yii CMultipileUpload选择多个文件

Php Yii CMultipileUpload选择多个文件,php,yii,Php,Yii,得到答案了吗 将多个文件上载到数据库以进行注册 我已经尝试了很多方法,使用CMultiFileUpload小部件实现多文件上传。我已经检查并遵循了以下链接- Yii多文件上传 但还是没有运气 错误:存储数据但未上载文件 请帮忙 这是我的密码: 形式上 <?php $this->widget('CMultiFileUpload', array( 'model'=>$model, 'at

得到答案了吗

将多个文件上载到数据库以进行注册 我已经尝试了很多方法,使用CMultiFileUpload小部件实现多文件上传。我已经检查并遵循了以下链接-

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',

                )
);?>
加载项CActiveForm小部件

'htmlOptions' => array(
        'enctype' => 'multipart/form-data',
    ),

因此,您可以使用此代码在Yii框架中上载多个文件

代码

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);
        }
    }
在控制器中

  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,$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);
       }
     }
形式上

<?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',
       'accept'=>'jpg|gif|png|doc|docx|pdf',
       'denied'=>'Only doc,docx,pdf and txt are allowed', 
       'max'=>4,
       'remove'=>'[x]',
       'duplicate'=>'Already Selected',

       )
        );?>

这一切都是为了多个上传-这很好,但对于多个选择


我希望这个链接能帮助一些人,因为当时我正在为多个选择文件进行多次上传而苦苦挣扎。花了很多时间在谷歌搜索上。干杯

最好用你找到的答案回答你自己的问题。其他人也可能得到帮助。