Как я могу отобразить PDF-файл, полученный с помощью file_get_contents в php?

Я хочу отобразить встроенный в HTML файл PDF, который находится в каталоге до корня документа.

Корень документа указывает на / var / www / web1 / web, а файл pdf находится в / var // www / web1 / docs / pdf, поэтому я не могу указать его из html.

Я использую PHP, и я пробовал несколько предложений, например get_file_contents, base64_encode, .... но не сработало.

Все примеры, которые я нахожу, заключаются в том, чтобы заставить загрузить pdf или преобразовать его в jpg, но это не то, что мне нужно.

Какие-либо предложения?

можете добавить, какой код пробовали?

nandal 07.06.2018 10:19

Это лучший ответ, который я смог найти stackoverflow.com/a/291823/8913606

melvin 07.06.2018 10:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
9 924
4

Ответы 4

Вы можете встроить PDF-файл на свой веб-сайт с помощью библиотеки, например, есть отличная библиотека под названием PDF.js

PDF - это двоичный формат, поэтому вы не можете точно "отобразить его".

Используйте следующий тег html: -

<embed src = "path_to_pdf_file.pdf" width = "800px" height = "2100px" />

Спасибо, нандал. Это не то, что я хочу, я не хочу, чтобы кто-то напрямую обращался к файлу через URL-адрес, указанный в теге src. Вот почему я хочу отправить его с php и почему он находится в недоступной папке.

Carlos 07.06.2018 10:34

Хорошо, без проблем, вы можете написать php-скрипт, обслуживающий файл pdf, а затем использовать URL-адрес этого pdf-скрипта, обслуживающего php-скрипт, в этом теге html.

nandal 07.06.2018 10:38

Сначала вам нужно перейти в корневой каталог с помощью "../"

<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», чтобы правильно его измерить.

Carlos 07.06.2018 12:22

Чтобы правильно установить размер встроенного элемента, вы должны выбрать соотношение, а затем масштабировать его по размеру окна браузера. Это делается статически с помощью CSS, вы можете сделать это динамически, используя JavaScript, изменяя свойства ширины и высоты стиля на основе window.innerWidth и window.innerHeight или размера родительского контейнера встраивания.

GrowingBrick 07.06.2018 13:23

Другие вопросы по теме