Если моя форма отправляет значение в базу данных, загрузите PDF-файл, который находится на сервере

$kite = "INSERT INTO `download` (name,email,contact,program,city,state)

VALUES ('" . $_POST['name'] . "','" . $_POST['email'] . "','" . $_POST['mobile'] . "','" . $_POST['program']."','" . $_POST['city']."','" . $_POST['state']."')";

$query=mysqli_query($sql,$kite);

if ($query)
{ ?>
<meta http-equiv = "refresh" content = "3;/pdf/quadcopter.pdf" download>

 <?php 
}

четко упомяните свой запрос с правильными фрагментами кода

Rakesh P 31.05.2019 08:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
1
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Предположим, что вы хотите загрузить файл после отправки формы:

$kite = "INSERT INTO `download` (name,email,contact,program,city,state)
VALUES ('" . $_POST['name'] . "','" . $_POST['email'] . "','" . $_POST['mobile'] . "','" . $_POST['program']."','" . $_POST['city']."','" . $_POST['state']."')";

$query=mysqli_query($sql,$kite);
if ($query) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/pdf');
  header('Content-Disposition: attachment; filename = "quadcopter.pdf"');
  header('Expires: 0');
  header('Cache-Control: must-revalidate');
  header('Pragma: public');
  header('Content-Length: ' . filesize("/path/to/quadcopter.pdf"));
  readfile("/path/to/quadcopter.pdf");
  die();
} else {
  // query error
}

Два наблюдения здесь:

  • вы не должны использовать значения $_POST непосредственно в своих операторах sql, так как ваш код открыт для внедрения sql;
  • вы не должны повторять какой-либо код перед функциями заголовка внутри кода (если вы это сделаете, код не будет работать).

pdf загружается.. но ничего не загружается.. pdf находится на сервере

shweta 01.06.2019 11:21

Насколько я понимаю, у вас на сервере есть pdf-файл, который вы хотите скачать. Можете ли вы объяснить, что вы подразумеваете под «он не может ничего загрузить?»

Cosmin Staicu 01.06.2019 11:44

Вы случайно не хотите начать загрузку и показать что-то пользователю?

Cosmin Staicu 01.06.2019 11:46

см.. что-то загружается.. когда я открываю загруженный файл.. он говорит, что не удалось загрузить PDF-документ.

shweta 01.06.2019 12:05

все мои pdf находятся в папке pdf

shweta 01.06.2019 12:08

Это означает, что проблема с файлом на сервере. Попробуйте открыть загруженный файл (не файл на сервере, а файл, который был загружен браузером) текстовым редактором, а не приложением pdf, и проверьте, не вывел ли там php-скрипт какую-либо ошибку.

Cosmin Staicu 01.06.2019 12:17

я открыл на возвышенном

shweta 01.06.2019 12:29

Какой html код? Как я уже говорил, вы не должны ничего выводить в свой скрипт. Все, что вы повторяете, попадает в загруженный файл. Строка readfile(filename) считывает файл из вашего хранилища, автоматически повторяя содержимое. Если вы повторите что-либо еще, ваш окончательный файл будет поврежден.

Cosmin Staicu 01.06.2019 12:36

Я обновил код в ответе, добавил строку die() после функции readfile().

Cosmin Staicu 01.06.2019 12:42

код, который я написал в запросе.. открывает файл PDF.. что мне делать

shweta 01.06.2019 12:50

Как я уже сказал, вы не можете вывести html-код и загрузить файл из того же php-скрипта. Если вы хотите отобразить подтверждающее сообщение в браузере (например, операция прошла успешно) и загрузить файл, вам нужно выполнить 2 шага. Первый php-скрипт делает запрос и выводит html-код пользователю. Выведенный html содержит javascript, который открывает новую вкладку и загружает второй файл php, который выводит pdf. Таким образом, пользователь видит html-код и предлагает загрузить файл.

Cosmin Staicu 01.06.2019 13:04

что я хочу, так это то, что у меня есть моя веб-страница. Когда пользователь нажимает кнопку, создается всплывающая форма, в которой пользователь заполняет детали. Если введена кнопка отправки, значения должны поступать в базу данных. должен автоматически загружаться который находится на сервере

shweta 01.06.2019 13:31

Если вы просто хотите скачать, то код, который я указал в ответе, — это все, что вам нужно. Можете ли вы обновить свой вопрос со всем php-скриптом после того, как вы сделали предложенную мной модификацию?

Cosmin Staicu 01.06.2019 13:38

возможно, заголовок не может указать путь к pdf

shweta 01.06.2019 13:55

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

Cosmin Staicu 01.06.2019 14:02

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