我对视图和生成的内容存在问题,无法生成PDF。目前,我一直在与niklasravnsborg \ LaravelPdf(mPDF的包装器,因为我之前正在使用的另一个PDF编写器的问题)一起工作,结果证明了我想要的质量好的PDF。
我之前在这个PDF编写器中我从来没有遇到过视图内部图像的问题,但是我必须承认它们已经是已经在视图中设置的图像(比如徽标,而不是说员工照片)。
我的问题出现的方式至少让我能够更好地追踪问题。
从我的控制器中,我得到以下信息:
$employeeMedCert = $employee->attachments()->where('category','Medical Examiners Certificate')->orderBy('endDate','desc')->limit(1)->get();
然后在我的刀片中,我有以下内容:
@foreach($employeeMedCert as $med){
{{Storage::url($med->attachment)}}
@endforeach
现在,通过当前的设置,我获得了附件的公共路径,完全没有任何问题。
然而,如果我执行以下操作:
@foreach($employeeMedCert as $med){
<img src="{{Storage::url($med->attachment)}}">
@endforeach
它使我的Laravel停顿在我必须重置服务器并且没有生成任何内容的地步。
我不确定问题是什么,就像我说的那样,我以前没有问题,我动态引用的图像无论如何都不大(300 - 600) ()),所以我不确定问题究竟在哪里。
上传控制器操作:
$path = Storage::putFile('public/employees', new File(request('file')));
employeeAttachment::create([
'attachment' => $path,
'attachmentType' => Storage::mimeType($path),
'category' => $request->type,
'endDate' => $request->dueDate,
'date' => $request->date,
'employeeID' => $employee,
'createdBy' => Auth::id()
]);
答案 0 :(得分:0)
这个问题的一个重要线索是,在html <img>
标签中,当它们在html中运行时会执行get请求。这意味着您可能遇到权限错误。
您可以通过在chrome中打开devtools并在任何带有图片代码的网站上查看服务器请求来检查此内容。
要检查的事项(假设您使用的是基本存储,例如不使用AWS):
<img src="{{base_url() . $med->attachment)}}">
(假设$med->attachment
是文件路径)。假设它是一个公共文件,您不必通过Storage
外观来访问它。如果这指向正确的方向,请告诉我。
Storage
外观的目的是保存文件并获取文件并将其加载到php变量中。目前,您正在从服务器加载文件,然后将图像标记指向文件,而不是指向存储图像的URL。
在img
标记中加入有效的网址可以解决您的问题(如上面的3所示)。