下载pdf后,有没有办法重定向到某个路由/刷新当前页面?我试图返回一个网址,但它只是转到网址而不生成文件。如果我使用下面的代码,它将生成文件并显示空白页面。我在这里使用laravel和fpdf。
路线:
Route::post('alumni/labels','AlumniController@labels')->name('alumni/labels');
控制器:
public function labels(){
$alumni = Alumni::whereIn('id', Session::get('alumniId'))->get();
$pdf = new PDF_Label('TJ103');
$pdf->AddPage();
foreach ($alumni as $alumnus) {
$text = sprintf("%s %s\n%s\n%s %s", $alumnus->firstName, $alumnus->lastName, $alumnus->address, $alumnus['hp1'], $alumnus['phone']);
$pdf->Add_Label($text);
}
return $pdf->Output('d');
}
查看:
<form method="post" action="labels">
{!! csrf_field() !!}
<button class="btn btn-primary" id="btn-submit">Generate Label</button>
</form>
答案 0 :(得分:1)
这不是正确的方法,但如果您可以在新页面中打开pdf
var pdfPage = window.open('printMyPdf.php');
$(pdfPage).bind('beforeunload',function(){
location.reload(); // redirect to your custom page
});
答案 1 :(得分:0)
您可以使用switch php语句重定向页面。有关详细信息,请参见:switch php statement。 这是一个示例:
$location = "/opt/lampp/htdocs/registration/register/2019/".$filename.".pdf";
// output
switch ($pdf->Output("F", $location)) {
default:
header("location: reg.php?");
}
您会注意到,该语句的'case ... break'部分被删除,并留给该语句的'default'部分,它被强制仅运行默认值。我希望这可以帮助你。经过两天的网上搜索,没有找到任何解决方案,我想出了这个解决方案。现在,它可以完美运行了。