我正在使用DOMPDF来生成pdf。
这是我的pdf.blade.php:
<img src="{{ public_path() . '/images/logo.png' }}" id="logo" />
<table class="order_confirmation">
<tbody>
<tr>
<th>Company name</th>
<td>Name</td>
</tr>
<tr>
<th>Email</th>
<td>test@email.com</td>
</tr>
</tbody>
</table>
这是我的控制器方法:
public function pdf() {
$data = array();
$pdf = PDF::loadView('pdf', $data);
return $pdf->stream();
}
这是错误:
类中的错误异常.pdf.php第 4036 行:图像png(.png):失败 打开流:权限被拒绝
还有一个堆栈跟踪:
在类中.pdf.php 第 4036 行位于 HandleExceptions->handleError('2', "图像PNG(.png):无法打开流:权限被拒绝", '/Applications/XAMPP/xamppfiles/htdocs/blablacompany/vendor/dompdf/dompdf/lib/class.pdf.php', '4036', array('file' => '/Applications/XAMPP/xamppfiles/htdocs/blablacompany/public/images/logo.png', 'x' => '34.015748031496', 'y' => '606.8742519685', 'w' => '334.5', 'h' => '201', 'byte' => '6', 'img' => '资源 ID #278', 'eight_bit' => 假, 'WPX' => '446', 'HPX' => '268', 'tempfile_alpha' => '.png', 'tempfile_plain' => '.png', 'imgalpha' => 资源, 'c' => '256', 'allocated_colors' => array('000' => '0', '9598261', '12756008', '9993266', '15848487', '7493443', '12690472', '16309032', '14269479', '5586004', '11637804', '16243240', '8809018', '2169210', '12624680', "15256615"、"6638155"、"2366072"、"5454677"、"10256177"、"13151271"...
你能帮帮我吗?
附言
- 我也尝试了url('/images/logo.png')而不是public_path()。'/图像/徽标.png'
- 我在存储、供应商和公共/图像上有 chmod 777,但仍然无法正常工作......
image_cache.cls.php第 105 行中的错误异常:file_put_contents(): 文件名不能为空
更新:
- 如果我设置 chmod 754 并且
return view('pdf')
->图像不显示(以及其他使用图像的页面/ - 如果我设置 chmod 754 并
$pdf = PDF::loadView('pdf', $data); return $pdf->stream();
-> 生成 PDF,但图像是描边方形的 - 但是如果我设置 chmod 755 并显示
return view('pdf')
-> 图像,但是.. - 当我尝试
$pdf = PDF::loadView('pdf', $data); return $pdf->stream();
时,我收到一条错误消息:
image_cache.cls.php第 105 行中的错误异常:file_put_contents(): 文件名不能为空
我想出了如何处理它:
- 对于 PDF 生成,您应该使用 public_path() 而不是 URL('')(例如
<img src="{{ public_path() . '/images/somepicture.jpg' }}" id="logo" />
), -
如果要加载视图
return view('yourview');
,public_path()
将不起作用 -
仅使用.jpg,.png不起作用
-
CHMOD 755 您的图像文件夹