Laravel создает PDF с помощью AJAX - PullRequest
0 голосов
/ 08 ноября 2018

Я использую 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'));

а это мой аякс:

    $(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 ) {
      }
     });
    });

но представление pdf не появляется, если я делаю это с ajax и застрял, но ответ 200.

enter image description here

и что мне делать с файлом в хранилище? Как я могу удалить файл PDF после загрузки пользователя из просмотра PDF? удалить без этого:

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