Когда мы создаем программное обеспечение или веб-сайт, который использует файлы, мы должны решить, как их хранить, одна из возможностей - создать папку и хранить там файлы, а другая возможность - сохранить их в базе данных, мы должны помнить, что поле longblob может хранить До 4 гигабайт
Движок базы данных mySQL, позволяет использовать блочные поля для хранения информации в двоичном формате. Этот формат позволяет хранить различные типы файлов, такие как Word, Excel, любые типы изображений, PDF-файлы и т. Д. В этом уроке мы увидим, как хранить файлы в таблице базы данных MySQL, данные будут отправлены из HTML-формы и обработаны с помощью PHP для сохранения файлов в базе данных.
Для выполнения примеров учебника нам понадобится удаленный или локальный сервер, который можно установить, как мы видели в учебнике:
- Как установить Xampp, чтобы превратить ваш компьютер в веб-сервер, таким образом у нас будет поддержка php и mysql и всех необходимых библиотек.
Далее мы создадим базу данных, которая будет хранить данные об автомобиле, с фотографией и техническим паспортом в формате pdf, для этого мы создадим из phpmyadmin пример, который будет называться дилером. Далее мы создадим таблицу autos.
СОЗДАНИЕ БАЗЫ ДАННЫХ; Структура таблицы для таблицы `cars` CREATE TABLE` cars` (` id` int (11) NOT NULL, `mark` varchar (150) DEFAULT '0', ` model` varchar (150) DEFAULT '0', ` foto` longblob) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1; Индексы таблицы `autos` ALTER TABLE` autos` ADD PRIMARY KEY (` id`); AUTO_INCREMENT из таблиц сброшенных AUTO_INCREMENT из таблицы `autos` ALTER TABLE` cars` MODIFY` id` int (11) NOT NULL AUTO_INCREMENT;Код создания таблицы
Мы создаем страницы PHP и форму регистрации данных
Далее мы создадим файл config.php, откуда мы будем подключаться к базе данных:
Далее мы собираемся создать страницу на PHP, которая будет отвечать за перечисление всех записей таблицы autos.
table {font: 14px Arial; граница: 1px solid #CCCCCC; нижнее поле: 10 пикселей; } td {width: 100px; } a.button {font: bold 14px Arial; текстовое оформление: нет; цвет фона: #EEEEEE; цвет: # 333333; обивка: 2px 6px 2px 6px; граница: 1px solid #CCCCCC; } "; эхо"Список всех записей в таблице"; эхо" "; $ result = mysql_query (" SELECT * FROM `autos`") или trigger_error (mysql_error ()); while ($ lines = mysql_fetch_array ($ result)) {foreach ($ row AS $ key => $ value) {$ row [$ key] = stripslashes ($ value);} echo "знак "; эхо"модель "; эхо"фото "; эхо"действия "; эхо""; эхо" ";} эхо" "; эхо" Новая машина ";?>msgstr ". $ row ['mark']." "; эхо"". $ lines ['model']." "; эхо"См фото "; эхо"редактировать удаление"; эхо"
Форма для регистрации данных, которая позволяет нам регистрировать фотографию, для этого мы должны использовать элементы файла, которые позволяют нам выбрать файл в браузере, затем обработать его с помощью PHP и сохранить данные в полях BLOB-объектов нашей таблицы autos. базы данных.
Создание сети на нашем сервере
Мы создаем сеть в папке с названием "Дилер" на нашем сервере. Веб-страница будет содержать код HTML и PHP, в форме мы должны использовать атрибут enctype = "multipart / form-data", который указывает, что вы можете отправлять файлы через форму, если у вас нет атрибута, вы не сможете отправлять файлы.
Эта страница будет называться alta.php
Код выглядит следующим образом:
$ value) {$ _POST [$ key] = mysql_real_escape_string ($ value); } // мы читаем данные фотографии $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["photo"] ["name"]; // это файл, который мы добавим в поле blob $ photo = $ _FILES ['photo'] ['tmp_name']; // преобразовать его в двоичный файл перед сохранением $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "INSERT INTO` autos` (` brand`, `model`, ` photo`) VALUES ('{$ _POST [' brand ']}', '{$ _POST [' model ']}', '$ фото ') "; mysql_query ($ sql) или die (mysql_error ()); заголовок ('Location: listautos.php'); }?>Далее нам нужно будет показать это, для этого мы создадим страницу, которая интерпретирует двоичный файл и покажет его, мы создадим страницу verfoto.php и укажем идентификатор фотографии, которую нужно показать.бренд:
$config[ads_text5] not foundмодель:
фото:
Документ без названия
Мы также можем извлечь атрибуты файла, если нам это нужно, следующим образом:
Файл временно сохраняется в памяти во время процесса. Если возникает какая-либо ошибка, данные могут быть потеряны или записаны не полностью, PHP-скрипт удаляет временный файл из памяти после завершения процесса, даже если он не завершается корректно.$config[ads_text6] not foundДалее мы создадим страницу для редактирования данных автомобиля, которую мы назовем edit.php
$ value) {$ _POST [$ key] = mysql_real_escape_string ($ value); } // мы читаем данные фотографии $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["photo"] ["name"]; // это временный файл $ photo = $ _FILES ['photo'] ['tmp_name']; // читаем временный файл в двоичном формате $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "UPDATE` автомобили" SET `mark` = '{$ _POST [' brand ']}', ` model` = '{$ _POST [' model ']}', `photo` = '$ photo' WHERE `id` = '$ id'"; mysql_query ($ sql) или die (mysql_error ()); заголовок ('Location: listautos.php'); } $ row = mysql_fetch_array (mysql_query ("SELECT * FROM` autos` WHERE` id` = '$ id' ")); ?>$config[ads_text5] not foundМы должны помнить, что если мы удалим запись, мы удалим файлы одновременно, и они не могут быть восстановлены. Чтобы удалить запись, мы создадим страницу delete.php и используем следующий код. Мы создали простой код без особой разработки, чтобы объяснить, как хранить файлы в полях BLOB-объектов. Один из недостатков заключается в том, что размер базы данных значительно увеличивается при хранении файлов в двоичном формате.бренд:
модель:
модель:
фото:
>
Одним из преимуществ является то, что файлы хранятся в таблице, что лучше из-за проблемы безопасности, так как доступ к файлам возможен только при наличии разрешений на управление базой данных и отсутствии физическая папка для загрузки файлов или манипулирования ими со стороны злоумышленника.$config[ads_text6] not found
- 0
СТАТЬИ