如何使用 PHP 将图片上传到数据库并显示
在现代 Web 应用程序中,出于各种原因(例如安全性、易于管理和可扩展性),将图片存储在数据库中是很常见的。PHP 作为一种流行的服务器端脚本语言,提供了一种将图片上传到数据库并在网页上显示的简便方法。
在本文中,我们将学习如何使用 PHP 将图片上传到数据库并显示。 PHP(PHP 的递归缩写:超文本预处理器)是一种广泛使用的开源通用脚本语言,尤其适用于 Web 开发,并且可以嵌入到 HTML 中。
在下文中,我们演示了在 Web 应用程序中实现文件上传功能的完整过程示例,并将实现以下功能。
用于上传图片的 HTML 表单。
使用 PHP 将图片上传到服务器。
使用 PHP 和 MySQL 将文件名存储在数据库中。
从数据库中检索图片并显示在网页上。
使用 PHP 将图片上传到数据库的方法
要创建数据库表,请确保您已安装 WAMP 或 XAMP 服务器,或者使用 phpMyAdmin 等工具。 phpMyAdmin 是一款基于 Web 的应用程序,可用于管理 MySQL 数据库。以下是使用 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
// 检查图像文件是否已上传
if(isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
$name = $_FILES['image']['name'];
$type = $_FILES['image']['type'];
$data = file_get_contents($_FILES['image']['tmp_name']);
// 连接到数据库
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
// 将图像数据插入数据库
$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
// 从 URL 获取图片的 ID
$id = $_GET['id'];
// 连接到数据库
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
// 从数据库中检索图像数据
$stmt = $pdo->prepare("SELECT name, type, data FROM images WHERE id=?);
$stmt->bindParam(1, $id);
$stmt->execute();
// 设置内容类型标头
header("Content-Type: image/jpeg");
// 输出图像数据
$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 应用程序中实现图像上传和显示功能。

