Как читать PDF-файл, сохраненный в MySQL?

Я успешно загрузил файлы PDF в базу данных, но теперь, когда я пытаюсь прочитать файлы, я получаю сообщение «Не удалось загрузить PDF», когда я нажимаю на ссылку.

<a href = "pdf.php<?php echo '?PDF='.$PDF;?> " target = "_blank" ></i> View Attachment</a>
$PDF = $_GET['PDF'];
$file = './upload/PDF'.$PDF;
header('Content-type: application/pdf');
header('Content-Description: inline; filename = "' .$file. '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
@readfile($file);

вставьте свой код в свой вопрос.

Harsh Barach 15.03.2018 08:28

То, что вы разместили, не имеет доступа к adatabse

Mawg says reinstate Monica 15.03.2018 08:43

Теперь я думаю, что мой пост выглядит хорошо?

Michael Taye 15.03.2018 08:45
Стоит ли изучать 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
3
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я вижу некоторые вещи, которые вам не следует делать. Во-первых, вы не должны использовать нефильтрованные переменные GET в строке, которая загружает что-то из вашей файловой системы. Так что сначала отфильтруйте их. Я бы посоветовал прочитать документацию по безопасности.

https://secure.php.net/manual/en/security.php

Следующее, что я думаю, вы забыли / в своей струне.

$file = './upload/PDF/'.$PDF;

вы должны поместить его в подпапку для лучшего понимания.

И последнее, если у вас есть файл и вы пытаетесь его вернуть, вы должны вернуть их как поток. Что-то вроде этого:

$data = file_get_contents("./upload/PDF/yourname.pdf");
header("Content-type: application/octet-stream");
header("Content-disposition: attachment;filename=nameofyour.pdf");
echo $data;

Затем вы можете вернуть их, и ваш браузер сможет их открыть. И вы не используете базу данных в своем посте. Вы только пытаетесь открыть вложение. Таким образом, было бы намного проще установить очень простую ссылку на ваш PDF-файл и генерировать только URL-адрес из вашей базы данных.

О, у меня проблема, я пропустил косую черту / ... Спасибо всем

Michael Taye 15.03.2018 08:57

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