Загрузка изображений в базу данных или на сервер с помощью HTML, PHP и MySQL

Есть два метода загрузки картинок: в базу данных или на сервер. В данной статье мы рассмотрим оба способа. Предполагается, что у вас есть базовые знания HTML, PHP и MySQL.

Для загрузки картинки в базу данных требуется выполнить три шага:

1. Создайте HTML-форму для загрузки. 2. Подключитесь к базе данных и сохраните картинки. 3. Отобразите картинки.

Шаг 1. Создайте HTML-форму

Создадим HTML-форму с способом post и сохраним ее в файле с именем upload.html.

<html><body><formmethod="POST"action="getdata.php"enctype="multipart/form-data"><inputtype="file"name="myimage"><inputtype="submit"name="submit_image"value="Upload"></form></body></html>

Мы отправляем данные из данной HTML-формы в файл getdata.php, при помощи которого изображение будет сохранено в базе данных.

Шаг 2. Подключитесь к базе данных и сохраните изображение

Сначала необходимо подключиться к базе данных. В примере мы используем БД «demo».

<?php$host='localhost';$user='root';$pass=' ';mysql_connect($host, $user, $pass);mysql_select_db('demo');?>

Чтобы сохранить изображение в базе, необходимо использовать для столбца в таблице тип данных blob. MySQL использует BLOB для хранения двоичных данных. Вы можете без проблем использовать BLOB TINYBLOB, BLOB, MEDIUMBLOB или LONGBLOB в зависимости от размера загружаемого рисунка.

<?php$imagename=$_FILES["myimage"]["name"];//Получаем содержимое картинки и добавляем к нему слеш$imagetmp=addslashes(file_get_contents($_FILES['myimage']['tmp_name']));//Вставляем имя картинки и содержимое картинки в image_table$insert_image="INSERT INTO image_table VALUES('$imagetmp','$imagename')";mysql_query($insert_image);?>

Шаг 3. Вывод сохраненных картинок из базы данных

Чтобы вывести картинки, необходимо создать два файла. Это файл fetch_image.php.

<?phpheader("content-type:image/jpeg");$host='localhost';$user='root';$pass=' ';mysql_connect($host, $user, $pass);mysql_select_db('demo');$name=$_GET['name'];$select_image="select * fromimage_tablewhereimagename='$name'";$var=mysql_query($select_image);if($row=mysql_fetch_array($var)){ $image_name=$row["imagename"]; $image_content=$row["imagecontent"];}echo $image;?>

Сейчас мы хотим отобразить изображение — это делается при помощи файла display_image.php.

<html><body><formmethod="GET"action=" "><inputtype="file"name="your_imagename"><inputtype="submit"name="display_image"value="Display"></form></body></html><?php$getname= $_GET[' your_imagename '];echo"<img src = fetch_image.php?name=".$getname." width=200 height=200 >";?>

Для загрузки картинки на сервер также потребуется три шага:

1. Создайте HTML-форму для загрузки картинки. 2. Сохраните путь к базе данных и изображение на сервере. 3. Выведите изображение.

Шаг 1. Создайте HTML-форму

Вы можете использовать HTML-форму из предыдущего примера.

Шаг 2. Сохранение картинки на сервере

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

<?php$host='localhost';$user='root';$pass=' ';mysql_connect($host, $user, $pass);mysql_select_db('demo');$upload_image=$_FILES[" myimage "]["name"];$folder="/xampp/htdocs/images/";move_uploaded_file($_FILES[" myimage "][" tmp_name "],"$folder".$_FILES[" myimage "][" name "]);$insert_path="INSERT INTO image_table VALUES('$folder','$upload_image')";$var=mysql_query($inser_path);?>

Шаг 3. Отображение картинок

Чтобы вывести изображение, необходимо приобрести из базы данных имя файла и путь к нему. Это файл fetch_image.php.

<?php$host='localhost';$user='root';$pass=' ';mysql_connect($host, $user, $pass);mysql_select_db('demo');$select_path="select * fromimage_table";$var=mysql_query($select_path);while($row=mysql_fetch_array($var)){ $image_name=$row["imagename"]; $image_path=$row["imagepath"];echo"img src=".$image_path."/".$image_name." width=100 height=100";}?>

Таким образом можно загрузить изображение в базу данных при помощи HTML, PHP и MySQL.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *