错误400如果我正在创建链接,则您的请求在yii中无效

时间:2014-03-20 07:16:15

标签: yii

我对Yii很新,所以这可能是一个愚蠢的问题。我必须在某处遗漏某些东西。 Plz帮助我。 我正在学习Yii时,我刚刚编写了一个简单的代码。 我有一个火花控制器,其动作看起来像这样:

public function actionDownload($name){

          $filecontent=file_get_contents('images/spark/'.$name);
          header("Content-Type: text/plain");
          header("Content-disposition: attachment; filename=$name");
          header("Pragma: no-cache");
          echo $filecontent;
          exit;
    }

现在我在视图文件中启用了SEO友好URL和echo语句,以显示返回的下载文件名。 但是当我转到URL时 的 SITE_NAME / index.php的/火花/下载/ db5250efc9a9684ceaa25cacedef81cd.pdf 我收到错误400 - 您的请求无效。

Plz让我知道我在这里遗失了什么。

3 个答案:

答案 0 :(得分:4)

Yii密切关注你传递给action函数的params。您传递的任何参数都必须与$_GET中的参数匹配。

因此,如果您通过了$name,那么您需要确保$_GET['name']可用。

请检查/config/main.php中的网址管理员,确保您声明了GET var:

'spark/download/<name:[a-z0-9]+>' => 'site/download', // Setting up $_GET['name']

否则将您的函数更改为正确的参数变量:

public function actionDownload($anotherName){

}

答案 1 :(得分:1)

您是否正确创建了网址?

你应该做得最好
Yii::app()->createUrl('/spark/download',array('name'=>$filename));

答案 2 :(得分:0)

确保您在请求中正确提供参数name$name)。

使用

SITE_NAME / index.php的/火花/下载/的名称 /db5250efc9a9684ceaa25cacedef81cd.pdf

SITE_NAME / index.php的/火花/下载?的名称 = db5250efc9a9684ceaa25cacedef81cd.pdf

而非 SITE_NAME / index.php / spark / download / db5250efc9a9684ceaa25cacedef81cd.pdf