PDF файл не загружается - PullRequest
       13

PDF файл не загружается

0 голосов
/ 29 декабря 2018

Я хочу скачать pdf-файл с результатом, я уже сгенерировал pdf, используя fpdf [$ pdf-> Output ($ output_file, 'F');], сгенерированный pdf-файл сохраняется на сервере.

Я хочу, чтобы пользователь мог в любом случае загрузить файл pdf, сгенерированный из fpdf.Я даже пытался использовать другие выходные данные (http://www.fpdf.org/en/doc/output.htm), но ни один из них не работает, кроме «F». $ Pdf-> Output ($ output_file, 'F'); (сгенерировать PDF успешно, используя это)

Я также попытался добавить форму, которая будет загружать существующий сгенерированный файл с сервера в браузер, но ничего не работает. Мой код такой, как показано ниже:

<form method="post" target="_blank">
    <input type="submit" name="download" value="Download Most Recent PDF">
    <h3>Please check the content of PDF.</h3>
</form>

    $file = plugin_dir_path(__FILE__) . "../pdf/Result.pdf";
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;

}

Я хочу сгенерировать результат (что я успешно сделал) и позволить пользователю загрузить результат в PDF-версии. (Где я застрял).

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Если у вас есть сгенерированный PDF в общедоступной папке, то вы можете просто сослаться на него в виде тега:

<a href="[location of generated PDF]" target="_blank"> Click here to download PDF</a>

Технически это откроет PDF в новой вкладке, но это позволяетпользователь должен просмотреть и затем нажать кнопку «Сохранить» в средстве просмотра PDF на новой вкладке.

Надеюсь, это ответит на ваш вопрос ?

0 голосов
/ 29 декабря 2018

Сначала убедитесь, что путь к файлу указан правильно или нет. После этого, если файл не загружается, попробуйте следующий код:

    header('Pragma: public');

    header('Expires: 0');

    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

    header('Cache-Control: private', false); 

    header('Content-Type: application/pdf');

    header('Content-Disposition: attachment; filename="'. basename($filename) . '";');

    header('Content-Transfer-Encoding: binary');

    header('Content-Length: ' . filesize($filename));

   echo file_get_contents($filename);

    exit;
...