0

yii フォルダーからファイルをダウンロードするためのリンクを作成しようとしています。リンクは表示されますが、クリックするとエラーが表示されます。Error 403 You are not authorized to perform this action.

これらは私のコードです:

public function actionView2($id)
{
    $this->render('view2',array(
        'model'=>$this->loadModel($id),
    ));
}

_view.php

<b><?php echo CHtml::encode($data->getAttributeLabel('image')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->image), array('view2', 'id'=>$data->image), array('target'=>'_blank'));

?>
<br />

view2.php

<h1>View2  #<?php echo $model->image; ?></h1>

<?php $this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'image',
    ),
)); ?>

認可か何かが原因だと思っていましたが、accessRulesやUserIdentity.phpは何も変更していません

public function accessRules()
{
    return array(
        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('index','view'),
            'users'=>array('*'),
        ),
        array('allow', // allow authenticated user to perform 'create' and 'update' actions
            'actions'=>array('create','update'),
            'users'=>array('@'),
        ),
        array('allow', // allow admin user to perform 'admin' and 'delete' actions
            'actions'=>array('admin','delete'),
            'users'=>array('admin'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}

UserIdentity.php

public function authenticate()
{
    $users=array(
        // username => password
        'demo'=>'demo',
        'admin'=>'admin',
    );
    if(!isset($users[$this->username]))
        $this->errorCode=self::ERROR_USERNAME_INVALID;
    elseif($users[$this->username]!==$this->password)
        $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
        $this->errorCode=self::ERROR_NONE;
    return !$this->errorCode;
}

この方法をできる限り試してみますが、これが解決できない場合は、「リンクをダウンロード」する別の最良の方法はありますか?

4

1 に答える 1

0

このアクションview2は で許可されたアクションとしてリストされていないため、一番下のルールにaccessRulesヒットします。deny

于 2013-07-23T05:40:26.283 に答える