0

私のモデルコード:

      public $image;

      return array(
        array('filename', 'required'),
        array('image', 'file', 'types'=>''),
        array('filename', 'length', 'max'=>11),
        array('id, filename', 'safe', 'on'=>'search'),
    );

私のビューコード:

     <?php echo CHtml::activeFileField($model, 'image'); ?>

私のコントローラーコード:

     $model =  new TblUpload;
     $model->attributes=$_POST['TblUpload'];
     $img = CUploadedFile::getInstance($model,'image');
     if($img->saveAs(Yii::app()->basePath.'/../images/'.$img))
            {       
                $model->filename = $img;
                $model->save(false);
            }
     }
    $this->render('uploadfile',array('model'=>$model));
}

こんにちは、このコードを使用している友人は、画像やドキュメントなどのすべての種類のファイルをアップロードできますが、ビデオをアップロードすることはできません....php.ini ファイルの max_upload_size も変更しました...

4

2 に答える 2

0

最後に、画像をアップロードする方法を整理しました...これが私のコントローラーコードです.....

パブリック関数 actionUploadfile()

{
        $model =  new TblUpload;    
        if(isset($_POST['TblUpload']))
        {           
            $model->image=CUploadedFile::getInstance($model,'image');
            if($model->save())
            {
            $model->image->saveAs('/wamp/www/fileupload/images/'.$fileName);
            }*/
            $model->attributes=$_POST['TblUpload'];
            $img = CUploadedFile::getInstance($model,'image');
            if($img->saveAs(Yii::app()->basePath.'/../images/'.$img))
            {

                $model->filename = $img;
                $model->save(false);
            }   
        }
    $this->render('uploadfile',array('model'=>$model));
}

これは私が間違えた場所でした...しかし、今はuploadify拡張機能を使用してあらゆる種類のファイルをアップロードし、一度に複数のアップロードに使用できるように編集しています

于 2012-12-04T06:44:59.693 に答える
0

フォーム ビューで、フォームの enctype を設定しましたか?

$form = $this->beginWidget(
    'CActiveForm', array(
        'id' => 'my-form',
        'htmlOptions' => array(
            'enctype' => 'multipart/form-data'
        ),
    )
);

また、アップロードしようとしているフォルダーへのパスが存在しないか、間違っている可能性もあります。getcwd() を使用してみてください。

$model->my_image->saveAs(getcwd()."/uploads/myfile.jpg");

これが問題である可能性が最も高く、上記のコードのパスは次のとおりです。

 if($img->saveAs(Yii::app()->basePath.'/../images/'.$img))

ルートの前のディレクトリに実際にアップロードしようとしない限り、ベースパスとそれに続く ../ はおそらく間違っていますか?

于 2012-11-29T11:05:28.263 に答える