如何解决查看存储在 Laravel 公共/存储中的 pdf?
我的代码不保存 pdf,我需要显示它。如果可能的话也下载它。
<td><a name="Manual" href="{{asset('storage/app').'/'.$machineData->getManual()}}">
Manual de {{$machineData->getMachineName()}}</a></td>
在控制器上我有这个
protected function downloadFile($src)
{
if(is_file($src))
{
$finfo=finfo_open(FILEINFO_MIME_TYPE);
$content_type=finfo_file($finfo,$src);
finfo_open($finfo);
$file_name=basename($src).PHP_EOL;
$size=filesize($src);
header("Content-Type: $content_type");
header("Content-disposition: attachment; filename=$file_name");
header("Content-transfer-encoding: binary");
header("Content-Length: $size");
return true;
}
else
{
return false;
}
}
public function download(Request $request)
{
$note=$request->file('manual');
if(!$this->downloadFile(app_path(). $note))
{
return redirect("/machineIndex");
}
}
解决方法
我相信您可以通过 TCPDF 实现这一点
$pdf = new TCPDF('P','in',[$sizeX,$sizeY],true,'UTF-8',false);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->AddPage();
$pdf->SetMargins(0,true);
$pdf->SetAutoPageBreak(false,0);
$pdf->Output($outputPath,'I');
此代码将创建一个新的 pdf 文档,然后查看 https://tcpdf.org/ 进行必要的更改,最后的 $pdf->Output($outputPath,'I');
将打开 pdf 而不将其保存到存储中(几乎就像一个dd).
编辑:
我写这篇文章的假设是你不想将文件保存到存储中,如果文件已经保存在公共/存储中,你可以用一个直接的 URL 来显示它。
您需要带有 php artisan storage:link
的符号链接,然后指导它在目录中的位置。例如'laravel.test/public/pdfs/pdf1.pdf'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。