使用fpdf下载pdf后如何重定向

时间:2017-01-06 11:01:43

标签: php laravel pdf laravel-5 fpdf

下载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>

2 个答案:

答案 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'部分,它被强制仅运行默认值。我希望这可以帮助你。经过两天的网上搜索,没有找到任何解决方案,我想出了这个解决方案。现在,它可以完美运行了。