Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2 SendFile()显示一些字符而不是下载_Php_Yii_Yii2 - Fatal编程技术网

Php Yii2 SendFile()显示一些字符而不是下载

Php Yii2 SendFile()显示一些字符而不是下载,php,yii,yii2,Php,Yii,Yii2,我有控制器代码: public function actionDownload($id){ $download=状态::findOne($id); $path=Yii::getAlias('@webroot')。/uploads/status/'.$download->image\u web\u filename; 如果(文件_存在($path)){ 返回Yii::$app->response->SendFile($path,$download->image\u src\u filename)

我有控制器代码:

public function actionDownload($id){
$download=状态::findOne($id);
$path=Yii::getAlias('@webroot')。/uploads/status/'.$download->image\u web\u filename;
如果(文件_存在($path)){
返回Yii::$app->response->SendFile($path,$download->image\u src\u filename);
出口
}否则{
抛出新的NotFoundHttpException(“找不到{$download->image\u src\u filename}文件”);
}

}
看起来您需要标题

请尝试使用以下代码:

public function actionDownload($id) {
    header("Content-type:application/pdf");

........
如果不工作,请尝试添加此标题

header("Content-Disposition:attachment;filename='filename.pdf'");

我在这段特定代码中遇到的问题是,我必须删除
以及上面和gridview列中的
'pjax'=>true
,这样它就工作了,我没有更改
操作下载($id)
代码中的任何内容

编辑前(原始错误代码) `....................................



`
编辑后(原始错误代码)

`



`
就这些!!我发现了。

只需添加

 ob_clean();
以前

return Yii::$app->response->SendFile($path,$download->image_src_filename);
。 ob_clean()将清理输出并修复问题。 这对我有用。 谢谢

 ob_clean();
return Yii::$app->response->SendFile($path,$download->image_src_filename);