Я успешно загрузил файлы 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);
То, что вы разместили, не имеет доступа к adatabse
Теперь я думаю, что мой пост выглядит хорошо?






Итак, я вижу некоторые вещи, которые вам не следует делать. Во-первых, вы не должны использовать нефильтрованные переменные 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-адрес из вашей базы данных.
О, у меня проблема, я пропустил косую черту / ... Спасибо всем
вставьте свой код в свой вопрос.