Храните файлы в полях BLOB с помощью PHP и MySQL

{title}

Когда мы создаем программное обеспечение или веб-сайт, который использует файлы, мы должны решить, как их хранить, одна из возможностей - создать папку и хранить там файлы, а другая возможность - сохранить их в базе данных, мы должны помнить, что поле longblob может хранить До 4 гигабайт

Движок базы данных mySQL, позволяет использовать блочные поля для хранения информации в двоичном формате. Этот формат позволяет хранить различные типы файлов, такие как Word, Excel, любые типы изображений, PDF-файлы и т. Д. В этом уроке мы увидим, как хранить файлы в таблице базы данных MySQL, данные будут отправлены из HTML-формы и обработаны с помощью PHP для сохранения файлов в базе данных.

Для выполнения примеров учебника нам понадобится удаленный или локальный сервер, который можно установить, как мы видели в учебнике:

  • Как установить Xampp, чтобы превратить ваш компьютер в веб-сервер, таким образом у нас будет поддержка php и mysql и всех необходимых библиотек.

Далее мы создадим базу данных, которая будет хранить данные об автомобиле, с фотографией и техническим паспортом в формате pdf, для этого мы создадим из phpmyadmin пример, который будет называться дилером. Далее мы создадим таблицу autos.

{title}

 СОЗДАНИЕ БАЗЫ ДАННЫХ; Структура таблицы для таблицы `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, откуда мы будем подключаться к базе данных:

 config.php

Далее мы собираемся создать страницу на PHP, которая будет отвечать за перечисление всех записей таблицы autos.

{title}

 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

{title}

Код выглядит следующим образом:

 $ 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'); }?>

бренд:

$config[ads_text5] not found

модель:

фото:

Далее нам нужно будет показать это, для этого мы создадим страницу, которая интерпретирует двоичный файл и покажет его, мы создадим страницу verfoto.php и укажем идентификатор фотографии, которую нужно показать.
 Документ без названия 

{title}

Мы также можем извлечь атрибуты файла, если нам это нужно, следующим образом:

 Файл временно сохраняется в памяти во время процесса. Если возникает какая-либо ошибка, данные могут быть потеряны или записаны не полностью, 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