如何使用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.