使用 DomPDF 嵌入图像 [Laravel9]

问题描述 投票:0回答:1

我正在学习 Laravel 和 DomPDF。我得到了 stackoverflow 人员的帮助,并得到了 unserstand Laravel 的帮助。现在我在将图像嵌入 PDF 时遇到问题。 我搜索到我需要使用base64_encode进行图像显示,所以我写了这个。

控制器

public function generate_pdf(Student $student)
{
    $main_image = base64_encode(file_get_contents($student->student_image));

    $pdf = PDF::loadView('myPDF', compact('student')->with('main_image', $main_image));

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

myPDF.blade.php

<img src="data:image/png;base64,{{ $main_image }}">

数据存储和视图显示刀片文件工作正常。 这是当用户在控制器中存储数据“存储”功能的图像保存路径时。

控制器

$file_name = 'main_photo' . $ja_time . '.' . request()->student_image->getClientOriginalExtension(); 
        request()->student_image->move(public_path('images'), $file_name);
    

show.blade.php

<img src="{{ asset('images/' . $student->student_image) }}" width="200"
                                        class="img-thumbnail" />    

有人可以教我吗?

laravel dompdf
1个回答
0
投票

你把student_image放在public_path('images')里,应该是:

public function generate_pdf(Student $student)
{
    $main_image = base64_encode(file_get_contents(public_path('images/' . $student->student_image)));

    $pdf = PDF::loadView('myPDF', compact('student', 'main_image'));

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

在 myPDF.blade.php 中:

<img src="{{ $main_image }}">
© www.soinside.com 2019 - 2024. All rights reserved.