查看PDF格式的代码-Yii

查看PDF格式的代码-Yii,pdf,yii,Pdf,Yii,我已将PDF文件放在文件夹/protected/uploads中。我想在单击超链接时查看此文件。但是我遇到了错误,PDF没有显示。 错误 Error 404<br/> Unable to resolve the request "uploads/viewPdf". 以及表单中的链接。我想在这里提到的是,表单属于其他控制器,而不是上传控制器 \u表单 echo CHtml::link( 'pdf', Yii::app()->createUrl('

我已将PDF文件放在文件夹/protected/uploads中。我想在单击超链接时查看此文件。但是我遇到了错误,PDF没有显示。
错误

Error 404<br/>
Unable to resolve the request "uploads/viewPdf".
以及表单中的链接。我想在这里提到的是,表单属于其他控制器,而不是上传控制器 \u表单

echo CHtml::link(
        'pdf',
        Yii::app()->createUrl('/uploads/viewPdf', array('filename' => 'Tutorial')) ,
        array('class'=>'btnPrint btn btn-danger','target'=>'_blank'));
你没有一个叫做uploads的控制器,你有一个叫做upload的控制器,这就是问题所在。另外,我认为在使用createurl时不应该使用first/when。试用

echo CHtml::link(
        'pdf',
        Yii::app()->createUrl('upload/viewPdf', array('filename' => 'Tutorial')) ,
        array('class'=>'btnPrint btn btn-danger','target'=>'_blank'));
还有一件事,我不确定文件在创建时是否解析为正确的路径

$filepath = '/uploads/Tutorial' . $filename;
控制器在一个文件夹中,为什么/uploads/会从那里转到正确的文件夹?请尝试使用完整路径,或使用dirname(FILE)检测路径并从中获取

只是为了确定一下。您将创建一个如下所示的链接:
/uploads/Tutorial.pdf这将被解析为/protected/uploads/TutorialTutorial.pdf,这是您想要的功能吗?

Mihai所说的大部分内容都是正确的,应该修复。此外,尝试更改控制器以将
$filename
作为必需参数。如果url中不存在
$filename
,这将抛出404

public function actionViewPdf($filename){
    $filename .= '.pdf';
    ...
}

链接应该是
/upload/viewPdf
而不是
/uploads/viewPdf
@topher,但它只是显示一个空白页。没有显示任何错误。此外,如果我输入以下URL:/index.php/upload/viewPdf。它显示和错误的未定义索引:filename即使更改名称上传我无法使PDF视图。它只显示一个空白页面。启用Yii的日志记录,并查看apache日志以查看是否存在任何问题。听起来像是一个硬错误,有点像一个错误;丢失或类似的东西。
echo CHtml::link(
        'pdf',
        Yii::app()->createUrl('upload/viewPdf', array('filename' => 'Tutorial')) ,
        array('class'=>'btnPrint btn btn-danger','target'=>'_blank'));
$filepath = '/uploads/Tutorial' . $filename;
public function actionViewPdf($filename){
    $filename .= '.pdf';
    ...
}