PHP: попытка отобразить документ PDF - PullRequest
0 голосов
/ 31 января 2020

Я работаю над веб-приложением с файлами, сохраненными на сервере. Как отобразить файл PDF с помощью php?

Попытка № 1:

$ psFilePath выглядит следующим образом: I: / www/wwwpasroot/netclinic/dev/csst/PE1000054684 - Version1.pdf

echo "<embed src='$psFilePath' type='application/pdf'   height='300px' width='100%'>";

Результат: запрещено загружать локальный ресурс: file: /// I: / www /

Попытка # 2 :

    header("Content-type: application/pdf");
    header("Content-Disposition: inline; filename=$psFileName");
    header("Last-Modified: ".gmdate('D, d M Y H:i:s')." GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: pre-check=0, post-check=0, max-age=0");
    header("Pragma: anytextexeptno-cache", true);
    header("Cache-control: private");
    header("Expires: 0"); 
    $filesize = filesize($psFilePath);
    if( file_exists ( $psFilePath ) && is_readable( $psFilePath ) )
    {
        $handle = fopen($psFilePath, "r");
        $contents = fread($handle, $filesize);
        fclose($handle); 
        echo $contents; 
    }

Результат: https://imgur.com/a/2U8wqD1

Похоже, # 2 более перспективен, но контент по-прежнему отображается неправильно. Я что-то делаю неправильно? Я попытался изменить параметры заголовка безуспешно

Спасибо!

РЕДАКТИРОВАТЬ:

Попытка № 3: With <a></a>

echo "<a href='$psFilePath'>PDF</a>";

Результат; не разрешено загружать локальный ресурс

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

Я нашел решение!

Мне нужно было поместить PDF в iframe!

<iframe src='link_to_my_controller/ShowPDF'></iframe>

И затем мой контроллер вызывает метод для чтения файла!

0 голосов
/ 31 января 2020

Попробуйте это:

<?php

$file = 'file.pdf';

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $file . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');

@readfile($file);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...