如何使用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應用程式中實現影像上傳和顯示功能。

更新於:2023年7月14日

14K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.