В предыдущем материале Пример закачки файла в blob-поле таблицы MySQL я уже затрагивал тему загрузки файла в таблицу базы данных. Но в том случае файл уже находился на диске, хотя зачастую разработчики сталкиваются с проблемой получения файла от пользователя и дальнейшей его обработки. В этой статье я расширю тему и приведу пример "от и до", то есть получения файла и загрузки его в таблицу базы данных.
Для начала создадим или изменим нашу форму (form), в ней обязательно должно присутствовать ENCTYPE="multipart/form-data", то есть:
Для загрузки самого файла через форму, добавляем код:
Теперь принимаем наш файл на другой странице:
//читаю файл
$fd = fopen ($_FILES['red']['tmp_name'], "rb");
$red = fread ($fd, $_FILES['red']['size']);
fclose ($fd);
$red = "'".addslashes($red)."'";
//запишу файл на диск, прыгадыца
$pathd = $_FILES['red']['name'];
copy($_FILES['red']['tmp_name'], $pathd);
}
else $red = 'Null'
Обратите внимание на строки:
$pathd = $_FILES['red']['name'];
copy($_FILES['red']['tmp_name'], $pathd);
Если Вы не планируете ничего делать с Вашим файлом дальше (например приложить его к письму и отправить уведомление с вложением для администратора), то можете эти строки исключить.
И наконец вставляем наш файл в базу данных:
или
//если в эту переменную что-то занесли
if ($red != 'Null') $query = $query.", rep_doc=".$red;
$query = $query." where rep_id=".$rid;
И, наконец, если Вы сохраняли файл на сайте для каких-то целей, можете его смело удалять:
Удачных Вам проектов!
Давайте делать интернет вместе!