如何使用PHP將影像上傳到資料庫並顯示
在現代Web應用程式中,出於各種原因,例如安全、易於管理和可擴充套件性,通常將影像儲存在資料庫中。PHP 作為一種流行的伺服器端指令碼語言,提供了一種簡單的方法來將影像上傳到資料庫並在網頁上顯示它們。
在本文中,我們將學習如何使用PHP將影像上傳到資料庫並顯示。PHP(PHP:超文字預處理器的遞迴縮寫)是一種廣泛使用的開源通用指令碼語言,特別適合Web開發,可以嵌入到HTML中。
在下面的文章中,我們演示了在Web應用程式中實現檔案上傳功能的完整過程示例,並將實現以下功能。
用於上傳影像的HTML表單。
使用PHP將影像上傳到伺服器。
使用PHP和MySQL將檔名儲存到資料庫。
從資料庫檢索影像並在網頁上顯示。
在PHP中將影像上傳到資料庫的方法
要建立資料庫表,請確保已安裝WAMP或XAMP伺服器,或使用phpMyAdmin之類的工具(一個允許您管理MySQL資料庫的基於Web的應用程式)。以下是使用phpMyAdmin建立表的步驟。
步驟1:建立資料庫和表
首先,我們將建立一個名為“tutorialspoint”的資料庫。或者可以使用現有資料庫或建立一個新的資料庫。
然後,我們將在這個資料庫中建立一個表來儲存影像資料。該表必須包含型別為“BLOB”(二進位制大型物件)的列,它可以儲存大型二進位制資料,例如影像。
例如,以下是一個SQL查詢,用於建立一個名為“images”的表,其中包含三列:“id”、“name”和“data”。“id”列是自動遞增的主鍵,“name”列用於儲存影像的檔名,“data”列用於儲存影像的二進位制資料。
要在PHPMyAdmin的SQL面板中建立表,請使用以下程式碼。
CREATE TABLE images ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, data LONGBLOB NOT NULL );
步驟2:建立用於上傳影像的HTML表單
下一步是建立一個HTML表單,允許使用者選擇和上傳影像。該表單必須包含型別為“file”的輸入欄位,允許使用者從計算機瀏覽和選擇影像檔案。提交表單後,所選影像檔案將傳送到伺服器進行處理。
<form method="post" action="upload.php" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" name="submit" value="Upload" /> </form>
請注意,該表單具有三個重要屬性
“method”屬性設定為“post”,表示將使用HTTP POST方法將表單資料傳送到伺服器。
“action”屬性設定為“upload.php”,這是將處理影像上傳的PHP指令碼的名稱。
“enctype”屬性設定為“multipart/form-data”,這在上傳檔案時是必需的。
步驟3:處理上傳的影像
下一步是建立一個PHP指令碼,該指令碼將處理上傳的影像並將其儲存到資料庫中。該指令碼必須首先檢查是否已上傳影像檔案,如果已上傳,則提取其二進位制資料並將其儲存到資料庫中。
這是一個名為“upload.php”的示例PHP指令碼,它執行此操作
<?php
// check if an image file was uploaded
if(isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
$name = $_FILES['image']['name'];
$type = $_FILES['image']['type'];
$data = file_get_contents($_FILES['image']['tmp_name']);
// connect to the database
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
// insert the image data into the database
$stmt = $pdo->prepare("INSERT INTO images (name, type, data) VALUES (?, ?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $type);
$stmt->bindParam(3, $data);
$stmt->execute();
}
?>
步驟4:在網頁上顯示影像
最後一步是建立一個PHP指令碼,該指令碼從資料庫檢索影像資料並在網頁上顯示它。該指令碼必須首先使用SELECT語句從資料庫檢索影像資料,然後使用適當的MIME型別輸出影像資料作為二進位制資料。
這是一個名為“display.php”的示例PHP指令碼,它執行此操作
<?php
// get the ID of the image from the URL
$id = $_GET['id'];
// connect to the database
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
// retrieve the image data from the database
$stmt = $pdo->prepare("SELECT name, type, data FROM images WHERE id=?");
$stmt->bindParam(1, $id);
$stmt->execute();
// set the content type header
header("Content-Type: image/jpeg");
// output the image data
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row['data'];
?>
步驟5:在網頁上顯示影像
要在網頁上顯示影像,我們可以使用HTML“img”標籤並將“src”屬性設定為輸出影像資料的PHP指令碼的URL。
這是一個顯示ID為1的影像的示例HTML程式碼
<img src="display.php?id=1" />
載入頁面時,將呼叫“display.php”指令碼,並將ID引數設定為1,影像資料將作為二進位制資料輸出,並由“img”標籤顯示。
結論
使用PHP將影像上傳到資料庫並在網頁上顯示它們是一個簡單的過程,它涉及建立具有BLOB列的資料庫表、建立HTML表單以上傳影像、建立PHP指令碼以處理上傳的影像並將其儲存到資料庫中、建立PHP指令碼以從資料庫檢索影像資料並將其作為二進位制資料輸出,最後使用HTML“img”標籤在網頁上顯示影像。透過遵循這些步驟,開發人員可以輕鬆地在他們的Web應用程式中實現影像上傳和顯示功能。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP