Laravel使用Ajax创建PDF

时间:2018-11-08 04:07:03

标签: ajax pdf laravel-5.5 dompdf

我使用barryvdh创建pdf文件。但是我想向用户创建一些交互式页面,例如在创建PDF时“请稍候”并禁用pdf按钮,然后在创建PDf完成后再次启用该按钮。

所以这是我的控制器:

    $pdf = PDF::loadView('panel.invoice.pdf', $data)->setWarnings(false)->setPaper('a4', 'portrait');

    $pdf->save(storage_path($code['code'].'.pdf'));

    return response()->file(storage_path($code['code'].'.pdf'));

这是我的ajax:

    $(document).off('click', '.pdf').on('click', '.pdf', function(e){
     disBtn(btn_saving);
     loadItem(selector);
     $.ajax({
      url: 'invoice/pdf',
      type: "POST",
      data:  new FormData( $('#list_form')[0]),
      contentType: false,
      dataType: "json",
      cache: false,
      processData:false,
      success : function ( response ) {
       finishload(selector);
       location.reload();
      },
      error   : function ( jqXhr, response, errorThrown ) {
      }
     });
    });

但是如果我使用ajax并卡住,则不会显示pdf视图,但响应为200。

enter image description here

然后,该如何处理存储中的文件?用户从pdf视图下载后如何删除pdf文件? 删除时不添加以下内容:

    "return response()->download(storage_path($code['code'].'.pdf'))->deleteFileAfterSend(true);"

0 个答案:

没有答案