Загрузите файл PDF в базу данных MySQL для нескольких записей с помощью PHP
Мы загрузим несколько записей в базу данных и отобразим все записи из базы данных на одной странице.
В этой статье мы увидим, как мы можем загружать PDF-файлы в базу данных MySQL с помощью PHP.
Подход: убедитесь, что на вашем компьютере установлены XAMPP или WAMP. В этом уроке мы будем использовать сервер WAMP.
Создание базы данных и таблицы:
Сначала мы создадим базу данных с именем geeksforgeeks . Вы можете использовать существующую базу данных или создать новую. Создайте таблицу с именем « pdf_data » с 3 столбцами для хранения данных. Обратитесь к следующему снимку экрана для структуры таблицы.
Скопируйте и вставьте следующий код в панель SQL вашего PHPMyAdmin .
CREATE TABLE IF NOT EXISTS `pdf_data` ( `id` int(50) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `filename` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Мы будем использовать Bootstrap для использования адаптивной сетки Bootstrap. Ниже приведен код для включения ссылки Bootstrap CDN в заголовок HTML-кода.
<link rel=”stylesheet” href=”https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css”>
- dbcon.php: этот код демонстрирует подключение нашего приложения к базе данных.
PHP
<?php $host = "localhost" ; $user = "root" ; $password = "" ; $database = "geeksforgeeks" ; $con = mysqli_connect( $host , $user , $password , $database ); if (! $con ){ ?> <script>alert( "Connection Unsuccessful!!!" );</script> <?php } ?> |
Создание папки и файлов:
Теперь мы создадим папку с именем « pdf ». Файлы, загруженные клиентом на сервер, будут храниться в этой папке. Создайте index.php и style.css . Сохраните основную папку проекта (например, GeeksForGeeks) в папке « C://wamp64/www/ », если вы используете WAMP, или в папке « C://xampp/htdocs/ », если вы используете сервер XAMPP соответственно. . Структура папок должна выглядеть следующим образом:
Создание формы: с формой HTML мы собираем данные от пользователя, разрешая загрузку вложенного файла .pdf.
Фрагмент кода HTML: Ниже приведен исходный код HTML для формы HTML. В теге HTML <form> мы используем «enctype='multipart/form-data», который представляет собой тип кодирования, позволяющий отправлять файлы с помощью метода POST. Без этой кодировки файлы не могут быть отправлены методом POST. Мы должны использовать этот enctype, если вы хотите разрешить пользователям загружать файл через форму.
HTML
< form method = "post" enctype = "multipart/form-data" > < div class = "form-input py-2" > < div class = "form-group" > < input type = "text" class = "form-control" name = "name" placeholder = "Enter your name" required> </ div > < div class = "form-group" > < input type = "file" name = "pdf_file" class = "form-control" accept = ".pdf" title = "Upload PDF" /> </ div > < div class = "form-group" > < input type = "submit" class = "btnRegister" name = "submit" value = "Submit" > </ div > </ div > </ form > |
Загрузить PDF-файлы: теперь мы увидим, как мы можем загружать PDF-файлы в базу данных. В приведенном ниже коде первый блок проверяет, была ли нажата кнопка «Отправить» в форме, и проверяет, есть ли вложение в поле «pdf_file», используя функцию PHPisset().
$_FILES — это двумерный ассоциативный глобальный массив элементов, которые загружаются с помощью метода HTTP POST. Функцияmove_uploaded_file() используется для загрузки pdf-файла на сервер. Мы передаем 2 значения, имя временного файла и папку, в которой файл будет храниться. Файлы будут храниться в папке «GeeksForGeeks/pdf/», которую мы создали ранее.
PHP
<?php if (isset( $_POST [ "submit" ])) { $name = $_POST [ "name" ]; if (isset( $_FILES [ "pdf_file" ][ "name" ])) { $file_name = $_FILES [ "pdf_file" ][ "name" ]; $file_tmp = $_FILES [ "pdf_file" ][ "tmp_name" ]; move_uploaded_file( $file_tmp , "./pdf/" . $file_name ); $insertquery = "INSERT INTO pdf_data(username,filename) VALUES("$name","$file_name")" ; $iquery = mysqli_query( $con , $insertquery ); } else { ?> <div class = "alert alert-danger alert-dismissible fade show text-center"> <a class = "close" data-dismiss= "alert" aria-label= "close" >×</a> <strong>Failed!</strong> File must be uploaded in PDF format! </div> <?php } } ?> |
Создание таблицы HTML и отображение записей:
Мы будем извлекать записи из базы данных и отображать их в таблице HTML.
Фрагмент кода HTML: Исходный код HTML для приведенной выше таблицы HTML выглядит следующим образом.
HTML
< div class = "card-body" > < div class = "table-responsive" > < table > < thead > < th >ID</ th > < th >UserName</ th > < th >FileName</ th > </ thead > < tbody > <? php $ selectQuery = "select * from pdf_data" ; $ squery = mysqli_query ($con, $selectQuery); while (($ result = mysqli_fetch_assoc ($squery))) { ?> < tr > < td ><? php echo $result["id"]; ?></ td > < td ><? php echo $result["username"]; ?></ td > < td ><? php echo $result["filename"]; ?></ td > </ tr > <? php } ?> </ tbody > </ table > </ div > </ div > |
PHP-код:
Подход:
Сначала мы выбираем все столбцы из таблицы pdf_data, а затем выполняем запрос в $squery .
$selectQuery = "select * from pdf_data"; $squery = mysqli_query($con, $selectQuery);
Далее мы будем использовать цикл while для выборки всех строк таблицы и сохранения данных в $result .
while (($result = mysqli_fetch_assoc($squery))) { ... }
Извлеченные данные теперь будут отображаться по столбцам в таблице HTML с помощью <?php echo $result['id']; ?> где ' id ' — это первый столбец нашей таблицы ' pdf_data '. Точно так же мы можем получить данные для соответствующих столбцов из таблицы.
<td> <?php echo $result["id"]; ?> </td> <td> <?php echo $result["username"]; ?> </td> <td> <?php echo $result["filename"]; ?> </td>
Полный код: Окончательный код для загрузки файла PDF в базу данных MySQL и отображения всех записей из таблицы с помощью PHP выглядит следующим образом. Этот полный код включает в себя:
- index.php
- стиль.css
- dbcon.php
PHP
<?php include "dbcon.php" ; ?> <!DOCTYPE html> <html lang= "en" > <head> <link rel= "stylesheet" href= <link rel= "stylesheet" href= "style.css" > </head> <body> <div class = "container" style= "margin-top:30px" > <div class = "row" > <div class = "col-lg-6 col-md-6 col-12" > <strong>Fill UserName and Upload PDF</strong> <form method= "post" enctype= "multipart/form-data" > <?php // If submit button is clicked if (isset( $_POST [ "submit" ])) { // get name from the form when submitted $name = $_POST [ "name" ]; if (isset( $_FILES [ "pdf_file" ][ "name" ])) { // If the ‘pdf_file’ field has an attachment $file_name = $_FILES [ "pdf_file" ][ "name" ]; $file_tmp = $_FILES [ "pdf_file" ][ "tmp_name" ]; // Move the uploaded pdf file into the pdf folder move_uploaded_file( $file_tmp , "./pdf/" . $file_name ); // Insert the submitted data from the form into the table $insertquery = "INSERT INTO pdf_data(username,filename) VALUES("$name","$file_name")" ; // Execute insert query $iquery = mysqli_query( $con , $insertquery ); if ( $iquery ) { ?> <div class = "alert alert-success alert-dismissible fade show text-center" > <a class = "close" data-dismiss= "alert" aria-label= "close" > × </a> <strong>Success!</strong> Data submitted successfully. </div> <?php } else { ?> <div class = "alert alert-danger alert-dismissible fade show text-center" > <a class = "close" data-dismiss= "alert" aria-label= "close" > × </a> <strong>Failed!</strong> Try Again! </div> <?php } } else { ?> <div class = "alert alert-danger alert-dismissible fade show text-center" > <a class = "close" data-dismiss= "alert" aria-label= "close" > × </a> <strong>Failed!</strong> File must be uploaded in PDF format! </div> <?php } // end if } // end if ?> <div class = "form-input py-2" > <div class = "form-group" > <input type= "text" class = "form-control" placeholder= "Enter your name" na
РЕКОМЕНДУЕМЫЕ СТАТЬИ |