Загрузка изображений в базу данных или на сервер с помощью 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.

<?php

header("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.

Перевод статьи «Upload Image to Database and Server using HTML, PHP and MySQL» был подготовлен дружной командой проекта Сайтостроение от А до Я