Laravel dompdf错误"图片未找到或输入未知"

时间:2017-08-15 09:58:37

标签: php laravel laravel-5.4 dompdf

我收到错误"图片未找到或输入未知"在使用dompdf软件包在Laravel 5.4中下载PDF之后。这是方法

public function pdf()
    {
        $users = User::get();
        $pdf = PDF::loadView('pdf', compact('users'));

        return $pdf->download('Users.pdf');
    }

我的观看文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PDF</title>
</head>
<body> 
    <div class="container">
        <div class="row">
            @foreach ($users as $user)
                <img src="public/storage/images/{{ $user->profile_pic }}" alt="" style="width: 150px; height: 150px;">
            @endforeach
        </div>
    </div>
</body>
</html>

如果我尝试使用静态图像名称(如下所示),则可以使用

<img src="public/storage/images/image_1.jpg" alt="" style="width: 150px; height: 150px;">

但不适用于动态名称。

请建议我该如何解决。

3 个答案:

答案 0 :(得分:7)

根据this问题,您必须使用完整的服务器路径 尝试:

<img src="{{ public_path("storage/images/".$user->profile_pic) }}" alt="" style="width: 150px; height: 150px;">

假设图像存储在 public 目录中。

答案 1 :(得分:1)

我已经解决了:

1-调用DomPDF库:

require_once ($_SERVER['DOCUMENT_ROOT'] . "/mi/LiquidacionesSueldo/include/dompdf/autoload.inc.php");
    ob_start();

2-生成HTML文件,我使用返回简单HTML表的函数来做到这一点:

get_dias_goce_sueldo($_POST['run'],$_POST['dvr'],$_POST['cantidad_dias'],$_POST['desde'],$_POST['hasta'],$_POST['am_pm']);

3-现在,您必须初始化DomPDF对象,注意我设置的所有选项:

    $dompdf=new Dompdf\Dompdf();
    $dompdf->set_option('isHtml5ParserEnabled', true);
    $dompdf->set_option('isRemoteEnabled', true);   
    $dompdf->loadHtml(ob_get_clean());
    $dompdf->set_paper('letter', 'portrait');
    $dompdf->render();
    $dompdf->stream("Solicitud_de_permiso_con_goce_de_sueldo.pdf", array('Attachment'=>1));

注意:在我的函数的HTML表中,我用完整路径调用图像,方法是:

<img src="'.$_SERVER['DOCUMENT_ROOT'].'/mi/DiasAdministrativos/logo.png">

仅此而已,我希望这对我有用。

答案 2 :(得分:1)

<?php echo '' ?>