【问题标题】:"CMultiFileUpload" only saves the last files info in db from the mutiliple files in YII?“CMultiFileUpload”仅从 YII 中的多个文件中保存 db 中的最后文件信息?
【发布时间】:2013-10-31 13:43:02
【问题描述】:

我正在使用“CMultiFileUpload”在 YII 中上传多个文件。我正在使用以下代码:

public function actionAddProductImages($id)
{       
    $model=new ProductImages;
    if(isset($_POST['ProductImages']))
    {   
                $model->attributes=$_POST['ProductImages'];
                $files = CUploadedFile::getInstancesByName('image');                                                            
                foreach ($files as $file)
                {
                        //$rnd = rand(0,9999);                                                                                  
                        $fileName = $file->getName();                                                   
                        $model->image = $fileName;
                        $model->product_id = $id;
                        $model->sortorder = $_POST['ProductImages']['sortorder'];                       
                        if($model->save())
                        {                                   
                            //$files->saveAs(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName); // image will uplode to rootDirectory/banner/   
                            $file->saveAs(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName);
                             //thumbmail---------------start---
                            Yii::app()->thumb->setThumbsDirectory('/upload/productImage/original/');                
                            Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize(538,359)->save($fileName);

                            Yii::app()->thumb->setThumbsDirectory('/upload/productImage/thumb/');               
                            Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize('0','110')->save($fileName);  

                            Yii::app()->thumb->setThumbsDirectory('/upload/productImage/thumb_70/');
                            Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize('0',70)->save($fileName); 
                        }
                }

                    /*Yii::app()->user->setFlash('productImage','productImage has been added successfully');
                    $this->redirect(array('view','id'=>$model->image_id));*/

    }

    $this->render('create',array(
        'model'=>$model,
    ));
}

这段代码实际上会发生什么:它只将最后一个文件的信息保存在数据库中,并将所有选定的文件上传到指定的文件夹中。请帮我找出我错的地方。 我是 YII 的新手。

【问题讨论】:

    标签: php database file-upload yii insert


    【解决方案1】:

    尝试(新图像 - 数据库中的新行,这就是新模型的原因):

    public function actionAddProductImages($id)
    {
        if(isset($_POST['ProductImages']))
        {
            $files = CUploadedFile::getInstancesByName('image');
            foreach ($files as $file)
            {
                $model=new ProductImages;
                $model->attributes=$_POST['ProductImages'];
                //$rnd = rand(0,9999);                                                                                  
                $fileName = $file->getName();
                $model->image = $fileName;
                $model->product_id = $id;
                $model->sortorder = $_POST['ProductImages']['sortorder'];
                if($model->save())
                {
                    //$files->saveAs(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName); // image will uplode to rootDirectory/banner/   
                    $file->saveAs(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName);
                    //thumbmail---------------start---
                    Yii::app()->thumb->setThumbsDirectory('/upload/productImage/original/');
                    Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize(538,359)->save($fileName);
                    Yii::app()->thumb->setThumbsDirectory('/upload/productImage/thumb/');
                    Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize('0','110')->save($fileName);
                    Yii::app()->thumb->setThumbsDirectory('/upload/productImage/thumb_70/');
                    Yii::app()->thumb->load(Yii::getPathOfAlias('webroot').'/upload/productImage/'.$fileName)->resize('0',70)->save($fileName);
                }
            }
            /*Yii::app()->user->setFlash('productImage','productImage has been added successfully');
            $this->redirect(array('view','id'=>$model->image_id));*/
        }
        $this->render('create',array(
            'model'=>$model,
        ));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多