Я хочу отобразить встроенный в HTML файл PDF, который находится в каталоге до корня документа.
Корень документа указывает на / var / www / web1 / web, а файл pdf находится в / var // www / web1 / docs / pdf, поэтому я не могу указать его из html.
Я использую PHP, и я пробовал несколько предложений, например get_file_contents, base64_encode, .... но не сработало.
Все примеры, которые я нахожу, заключаются в том, чтобы заставить загрузить pdf или преобразовать его в jpg, но это не то, что мне нужно.
Какие-либо предложения?
Это лучший ответ, который я смог найти stackoverflow.com/a/291823/8913606






Вы можете встроить PDF-файл на свой веб-сайт с помощью библиотеки, например, есть отличная библиотека под названием PDF.js
PDF - это двоичный формат, поэтому вы не можете точно "отобразить его".
Используйте следующий тег html: -
<embed src = "path_to_pdf_file.pdf" width = "800px" height = "2100px" />
Спасибо, нандал. Это не то, что я хочу, я не хочу, чтобы кто-то напрямую обращался к файлу через URL-адрес, указанный в теге src. Вот почему я хочу отправить его с php и почему он находится в недоступной папке.
Хорошо, без проблем, вы можете написать php-скрипт, обслуживающий файл pdf, а затем использовать URL-адрес этого pdf-скрипта, обслуживающего php-скрипт, в этом теге html.
Сначала вам нужно перейти в корневой каталог с помощью "../"
<embed src = "../docs/pdf/fileName.pdf" type = "application/pdf" width = "100%" height = "500px" />
Просто загрузите содержимое pdf с помощью страницы php, мы называем ее viewer.php, а затем вставьте страницу PHP, как это будет сам документ:
<embed src = "viewer.php" width = "80%" height = "900px" />
В файле viewer.php:
<?php
//Load file content
$pdf_content = file_get_contents('../unreachable_file_outside_webserver.pdf');
//Specify that the content has PDF Mime Type
header("Content-Type: application/pdf");
//Display it
echo $pdf_content;
В противном случае другое решение для больших файлов (проще для ОЗУ из-за буферизации чтения / вывода без сохранения содержимого в ОЗУ) использовать readfile
<?php
header("Content-Type: application/pdf");
readfile("../unreachable_file_outside_webserver.pdf");
Хорошо, спасибо GrowingBrick. Это сработало отлично. Это хороший ответ. Я не могу понять, как указать размер PDF тегу «embed», чтобы правильно его измерить.
Чтобы правильно установить размер встроенного элемента, вы должны выбрать соотношение, а затем масштабировать его по размеру окна браузера. Это делается статически с помощью CSS, вы можете сделать это динамически, используя JavaScript, изменяя свойства ширины и высоты стиля на основе window.innerWidth и window.innerHeight или размера родительского контейнера встраивания.
можете добавить, какой код пробовали?