下面是PHP上传图片到数据库并显示的完整攻略:
准备工作
在开始编写代码之前,需要做一些准备工作:
- 创建一个MySQL数据库和一张图片表,表中至少包含以下列:id(主键)、imageName(图片名称)、imageType(图片类型)、imageData(图片数据);
- 在你的项目中创建一个文件夹用于存储上传的图片。
上传图片的流程
- 创建一个HTML表单,包含一个input标签,类型为file:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Upload">
</form>
- 创建PHP脚本upload.php,用于处理上传的图片,代码如下:
<?php
//连接数据库
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbName = 'myDatabase';
$link = mysqli_connect($host, $user, $password, $dbName);
//获取图片数据
$imageData = file_get_contents($_FILES['image']['tmp_name']);
//准备SQL语句
$sql = "INSERT INTO images (imageName, imageType, imageData) VALUES (?, ?, ?)";
$statement = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($statement, 'sss', $_FILES['image']['name'], $_FILES['image']['type'], $imageData);
mysqli_stmt_execute($statement);
echo "Image uploaded successfully";
?>
- 上传并存储图片到数据库中后,可以使用下面的代码从数据库中读取并显示图片:
<?php
//连接数据库
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbName = 'myDatabase';
$link = mysqli_connect($host, $user, $password, $dbName);
//获取图片数据
$id = $_GET['id'];
$sql = "SELECT imageData, imageType FROM images WHERE id = ?";
$statement = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($statement, 'i', $id);
mysqli_stmt_execute($statement);
mysqli_stmt_bind_result($statement, $imageData, $imageType);
mysqli_stmt_fetch($statement);
//输出图片
header("Content-type: {$imageType}");
echo $imageData;
?>
示例说明
示例一:上传图片并显示
假设你有一个上传图片的网页,用户可以在网页上输入图片的名称,选择一张图片文件,并将其上传到服务器上。上传成功后,页面将显示刚刚上传的图片。
要实现这个功能,需要执行以下步骤:
- 在网页上添加一个表单,包含一个input标签,类型为file。用户可以通过该表单上传图片文件。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Upload">
</form>
- 编写PHP脚本upload.php,用于将上传的图片保存到数据库中。
<?php
//连接数据库
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbName = 'myDatabase';
$link = mysqli_connect($host, $user, $password, $dbName);
//获取图片数据
$imageData = file_get_contents($_FILES['image']['tmp_name']);
//准备SQL语句
$sql = "INSERT INTO images (imageName, imageType, imageData) VALUES (?, ?, ?)";
$statement = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($statement, 'sss', $_FILES['image']['name'], $_FILES['image']['type'], $imageData);
mysqli_stmt_execute($statement);
echo "Image uploaded successfully";
?>
- 接下来,需要从数据库中读取刚刚上传的图片,并显示它在网页上。
<?php
//连接数据库
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbName = 'myDatabase';
$link = mysqli_connect($host, $user, $password, $dbName);
//获取最新上传的图片信息
$sql = "SELECT id FROM images ORDER BY id DESC LIMIT 1";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_row($result);
$id = $row[0];
//获取图片数据
$sql = "SELECT imageData, imageType FROM images WHERE id = ?";
$statement = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($statement, 'i', $id);
mysqli_stmt_execute($statement);
mysqli_stmt_bind_result($statement, $imageData, $imageType);
mysqli_stmt_fetch($statement);
//输出图片
header("Content-type: {$imageType}");
echo $imageData;
?>
示例二:读取并显示某张图片
假设你有一个图片浏览器,用户可以在该浏览器中选择一张图片并查看它的详情。当用户选择一张图片时,应该从数据库中读取该图片的数据,并显示它在网页上。
要实现这个功能,需要执行以下步骤:
- 在图片浏览页面中某个区域内显示图片的列表,如下所示:
<div class="image-list">
<ul>
<li><a href="image.php?id=1">image1.jpg</a></li>
<li><a href="image.php?id=2">image2.jpg</a></li>
<li><a href="image.php?id=3">image3.jpg</a></li>
</ul>
</div>
- 编写PHP脚本image.php,用于从数据库中读取指定ID的图片数据,并在网页上显示。
<?php
//连接数据库
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbName = 'myDatabase';
$link = mysqli_connect($host, $user, $password, $dbName);
//获取图片数据
$id = $_GET['id'];
$sql = "SELECT imageData, imageType FROM images WHERE id = ?";
$statement = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($statement, 'i', $id);
mysqli_stmt_execute($statement);
mysqli_stmt_bind_result($statement, $imageData, $imageType);
mysqli_stmt_fetch($statement);
//输出图片
header("Content-type: {$imageType}");
echo $imageData;
?>
以上就是PHP上传图片到数据库并显示的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP上传图片到数据库并显示的实例代码 - Python技术站