我正在使用Laravel / Jquery和barryvdh / laravel-snappy从数据库数据中动态创建pdf。
在控制器中我有:
if ($request->ajax())
{
$document = Document::url($id)->first();
$pdf = PDF::loadView('app.documents.whitepapers.pdf', compact('document'));
return $pdf->download('filename.pdf');
// return response()->send($pdf->download('filename.pdf'), 200, $headers);
}
如何将此PDF推送到浏览器以便下载?
当我在没有Jquery的情况下这样做时,它工作得很好。它是Jquery函数背后的原因是我使用带有表单的模态来收集人员数据,然后才能启动下载。这有ajax验证。
答案 0 :(得分:2)
您将无法通过JavaScript将文件作为常规下载呈现。为了向用户显示下载提示,您需要在工作流程中添加一个额外步骤。
我建议采用以下工作流程:
content-disposition
,从而强制下载提示显示在用户的浏览器中。如果您需要为每个用户自定义PDF生成,请务必在步骤4中包含用户ID(或其他标识信息)。