如何使用 PHP 上傳圖片儲存到 MySQL 資料庫並顯示圖片

本篇 ShengYu 介紹 PHP 圖片上傳儲存到 MySQL 資料庫範例,在現代網頁開發中,圖片上傳和顯示是非常常見的功能。本文將詳細介紹如何使用 PHP 上傳圖片並將其儲存到 MySQL 資料庫中,並從資料庫中檢索並顯示圖片的完整流程。這個教程將幫助您輕鬆實現這一功能。

步驟 1:建立 MySQL 資料庫和表

首先,我們需要建立一個資料庫和一個表來儲存圖片的相關資訊。以下是 SQL 語句:

1
2
3
4
5
6
7
8
9
CREATE DATABASE image_upload;

USE image_upload;

CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
image LONGBLOB NOT NULL
);

步驟 2:建立 HTML 表單

接下來,我們需要建立一個 HTML 表單,讓使用者可以選擇並上傳圖片。這個表單將使用 POST 方法送出圖片。

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<title>Upload Image</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" required>
<input type="submit" name="upload" value="Upload">
</form>
</body>
</html>

步驟 3:處理圖片上傳的 PHP 程式碼 (upload.php)

我們需要編寫一個 PHP 腳本來處理表單送出,將圖片儲存到 MySQL 資料庫中。以下是 upload.php 的程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "image_upload";

// 建立連接
$conn = new mysqli($servername, $username, $password, $dbname);

// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}

if (isset($_POST['upload'])) {
// 取得圖片名稱
$imageName = $_FILES['image']['name'];
// 取得圖片的臨時路徑
$imageTmpName = $_FILES['image']['tmp_name'];

// 打開圖片檔案
$imageData = file_get_contents($imageTmpName);

// 準備 SQL 語句
$sql = "INSERT INTO images (name, image) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sb", $imageName, $imageData);
$stmt->send_long_data(1, $imageData);

// 執行 SQL 語句
if ($stmt->execute()) {
echo "圖片上傳成功!";
} else {
echo "圖片上傳失敗: " . $stmt->error;
}

$stmt->close();
}

$conn->close();
?>

步驟 4:顯示圖片的 PHP 程式碼 (display.php)

最後,我們需要一個 PHP 腳本來從資料庫中檢索並顯示圖片。以下是 display.php 的程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "image_upload";

// 建立連接
$conn = new mysqli($servername, $username, $password, $dbname);

// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}

// 取得圖片資料
$sql = "SELECT id, name, image FROM images";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<div>";
echo "<h3>" . $row['name'] . "</h3>";
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '"/>';
echo "</div>";
}
} else {
echo "沒有圖片。";
}

$conn->close();
?>

總結

以上步驟詳細介紹了如何使用 PHP 上傳圖片並將其儲存到 MySQL 資料庫中,以及如何從資料庫中檢索並顯示圖片。透過這個教程,您可以輕鬆地在您的網頁應用中實現圖片上傳和顯示的功能。

以上就是 PHP 圖片上傳儲存到 MySQL 資料庫範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
如果你想學習 PHP 相關技術,可以參考看看下面的文章,
PHP實現圖片上傳與顯示功能的完整指南
PHP 和 PDO 進行資料庫操作
PHP 執行發生錯誤在 Chrome/Firefox 上顯示 Error 500,要怎麼讓 PHP 顯示錯誤
如何使用 PHP 上傳檔案:步驟與範例指南
如何在 PHP 中實現上傳檔案並儲存到 MySQL 資料庫