查看存储在公共/存储在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, 0, 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的符号链接,然后引导到它在目录中的位置。例如' larvel .test/public/pdf/pdfs/pdf1.pdf'

关于https://laravel.com/docs/8.x/filesystem的更多信息

相关内容

  • 没有找到相关文章

最新更新