以Yii格式查看PDF

以Yii格式查看PDF,pdf,yii,mpdf,Pdf,Yii,Mpdf,我有PDF存储在一个文件夹中,现在我想通过我的表单页面上的链接查看它。我将如何使用Yii框架实现它 echo CHtml::link( 'pdf', Yii::app()->createUrl('/uploads/Tutorial.pdf') , array('class'=>'button','target'=>'_blank')); 我收到的错误如下所述,我还尝试在allow of controller中包含上载。 错误 错

我有PDF存储在一个文件夹中,现在我想通过我的表单页面上的链接查看它。我将如何使用Yii框架实现它

echo CHtml::link(
        'pdf',
        Yii::app()->createUrl('/uploads/Tutorial.pdf') ,
        array('class'=>'button','target'=>'_blank'));
我收到的错误如下所述,我还尝试在allow of controller中包含上载。 错误
错误404
无法解析“uploads/Tutorial.pdf”请求。



我正在使用mPDF生成PDF,但我不知道如何使用Yii查看已生成的PDF。

您还需要其他一些东西才能完成此工作。你可能已经做了一些,但没有粘贴它,但这里去

我假设您已通过以下方式将您的站点设置为使用带.htaccess的干净URL。现在您可以添加:

在config/main.php的urlmanager部分中,您需要一个到控制器类和操作方法的路由。这会告诉Yii当您转到URL
/uploads/Tutorial.pdf

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(

         'uploads/<filename:[a-zA-Z]+\.pdf>' => 'upload/viewPdf', // actionViewPdf Method in UploadController class

         // ... all your other rules
    ),
), 
那么你应该可以使用

echo CHtml::link(
    'pdf',
    Yii::app()->createUrl('/uploads/viewPdf', array('filename' => 'Tutorial')) ,
    array('class'=>'button','target'=>'_blank'));

希望这会有帮助。

好吧。。。。您确定服务器上有uploads文件夹,并且该文件夹位于链接友好的位置吗?Yii不会通过index.php文件传递所有信息,如果文件已经存在,那么它只会按原样使用它。这就是为什么您可以访问图像或css文件夹中的文件,而无需控制器

如果您使用的是正常的Yii结构,那么您应该在受保护的文件夹旁边放置“uploads”文件夹

如果您的上传文件夹不在可通过web访问的位置,请使用JamesG告诉您的方法。我唯一想做的更改是更改模式,它只匹配字母,您的名称中可能还有其他字符。

不要在链接中添加“.pdf”:

Yii::app()->createUrl('/uploads/Tutorial')
在PHP中,您可以这样打印pdf(必须在actionTutorial中):

本教程是一个简单的html页面,应该呈现到pdf中


您可以找到mpdf Yii扩展名的doku

错误404仅表示您没有引用有效的url。检查呈现页面中链接的url。localhost/application/index.php/viewPdf/filename/Tutorial是该链接,并且显示了相同的错误。我已将actionViewPDF包含在我的控制器中,并将其添加到“允许”规则中。我尝试了JamesJ访问方法,但仍面临相同的错误。因此,您的上载文件夹无法通过web访问?请首先回答以下问题,您的文件夹是否可以通过web访问。
Yii::app()->createUrl('/uploads/Tutorial')
$mPDF = Yii::app()->ePdf->mpdf();
$mPDF->WriteHTML($this->render('tutorial', array(), true));
$mPDF->Output();