1

私は Yii に問題があります:

Slider.php というモデルと SliderController.php というコントローラーがあります。

ユーザーに画像をアップロードさせるために、次のコードを書きました。

public function actionCreate()
{
    $model=new Slider;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);



    if(isset($_POST['Slider']))
    {
        $model->attributes=$_POST['Slider'];
        $model->image=CUploadedFile::getInstance($model, 'image');
        if($model->save()) {
            if(strlen($model->image)>0)
            {
                $model->image->saveAs(Yii::app()->basePath.'/../uploads/slider/'.$model->image);
            }


            $this->redirect(array('view','id'=>$model->id));
        }
    }

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

そしてそれはうまくいきます。

私の質問は、ビュー内のファイルタイプとサイズを取得/返すにはどうすればよいですか?

4

2 に答える 2

1

CUploadedFile使用できる属性がありsizeます。type情報は内部$model->imageにあるため、ビューでアクセスできます

Size: <?= $model->image->size; ?>
Type: <?= $model->image->type; ?> 

上記のタイプはクライアントによって報告されるため、(意図的または偶然に) 誤って構成されたクライアントでは正確ではないことに注意してください。表示目的ではこれはあまり重要ではありませんが、後で使用するために MIME タイプをどこかに保存している場合は、サーバー側で を使用して決定する必要がありますCFileHelper::getMimeType

于 2013-08-27T19:31:16.900 に答える
0

$model->image->getExtensionName() を使用して拡張機能名を取得することもできます。このメソッドは、ファイル拡張子の名前を返します。以下のリンクのドキュメントを確認してください。

http://www.yiiframework.com/doc/api/1.1/CUploadedFile#getExtensionName-detail

于 2013-08-27T21:11:00.230 に答える