【发布时间】:2018-02-01 02:32:59
【问题描述】:
我尝试以 PDF 格式打印证书,但是当我将代码推送到暂存时,它说
Temporary files directory "/var/www/protected/vendor/mpdf/mpdf/src/Config/../../tmp" is not writable
我不确定如何更改权限以及如何更改自定义目录。
这是我点击获取证书的按钮代码:
<a class="btn btn-sd btn-sd-ghost btn-sd-ghost-black margin-right-lg" href="<?php echo $this->createUrl('//idea/frontend/pdf', array('id'=>$model->id))?>" target="_blank">Get Your Certificate<i class="icon-right-small"></i></a>
<?php endif; ?>
这是控制器:
public function actionPdf($id){
$model = HUB::getOrganization($id);
$orgtitle = $model->title;
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4-L']);
$mpdf->WriteHTML("<html><body style='background-image:url(\"/images/cert-idea.jpg\"); background-image-resize: 5; background-position: top center;'></body></html>");
$mpdf->WriteHTML("<div style='text-align:center; display:table; height:100%; width:100%; padding-top:28%;'><h1 style='display:table-cell; vertical-align:middle; font-size:40px;'>".$orgtitle."</h1></div>");
$mpdf->Output('IDEA-CERT-'.$orgtitle.'.pdf', 'I');
}
希望有人可以帮助解决我的问题。谢谢!
【问题讨论】:
-
你用的是yii1还是yii2?你在用Kartik's mPDF extension吗?您是否在
app/config/web中设置了任何配置选项? -
解决方案:我正在使用这种方式
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4-L', 'tempDir'=>Yii::getPathOfAlias('application.runtime')]); -
您的解决方案看起来与@Finwe 的答案非常相似。如果那是帮助您解决问题的原因,您可以将他的答案标记为已接受,否则请编写您自己的答案并接受(您需要等待 48 小时)