Laravel, Vue.js |пустой pdf загружается по запросу Axios - PullRequest
0 голосов
/ 19 января 2019

Я пытался загрузить PDF из моего приложения Laravel через axios, но загружаемый файл является пустым pdf.

Я использую DomPdf для создания pdf и download.js для его загрузкиниже приведен мой код.

Примечание :: все работает отлично, если я пытаюсь загрузить его без запроса ajax.

Laravel,

return PDF::loadView('print', compact('bill'))->download($bill->number.'.pdf'); Javascript

``axios.get(`/bills/${id}/print` {
responseType: 'blob',Accept: 'application/pdf'
})
.then(response => {
  const download = require('@/download');
  // @ is just an alias for my root js directory.
  download(response.data, `file.pdf`, 'application/pdf');
});``

1 Ответ

0 голосов
/ 20 марта 2019

Попробуйте следующий код:

В контроллере Laravel:

$pdf = PDF::loadView('finance.remainingFee', compact('fee', 'time'));
$pdf->setPaper('a4' , 'portrait');
return $pdf->output();

И в файле Vue:

  axios.get(APP_URL + `api/finance/remainingStudentFee/${fee_id}`, {responseType: 'blob'}).then(response => {

    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'remaining_fee.pdf'); //or any other extension
    document.body.appendChild(link);
    link.click();

  })
  .catch(error => {
    console.log(error);
  })
...