📅  最后修改于: 2023-12-03 14:52:03.622000             🧑  作者: Mango
在 PHP 开发中,经常需要使用 PDO 扩展来连接和操作 MySQL 数据库。下面将介绍如何使用 PHP PDO 在 MySQL 中实现图片上传功能。
在开始之前,确保你已经安装了 PHP 和 MySQL,并将 PDO 扩展启用。另外,创建一个数据库用于存储上传的图片,并将以下代码保存为 config.php
文件,用于连接数据库:
<?php
$host = 'localhost';
$dbname = 'your_database_name';
$username = 'your_username';
$password = 'your_password';
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
exit("数据库连接失败:" . $e->getMessage());
}
请将 your_database_name
、your_username
和 your_password
替换为你的数据库名称、用户名和密码。
下面是一个简单的示例代码,用于实现图片上传功能。
<?php
require_once 'config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$uploadDir = 'uploads/'; // 图片上传目录
$fileName = $_FILES['image']['name'];
$fileType = $_FILES['image']['type'];
$fileSize = $_FILES['image']['size'];
$fileTmp = $_FILES['image']['tmp_name'];
$targetFile = $uploadDir . basename($fileName);
// 检查文件类型
$allowedTypes = ['image/jpeg', 'image/png'];
if (!in_array($fileType, $allowedTypes)) {
exit('只允许上传 JPEG 和 PNG 格式的图片');
}
// 检查文件大小
$maxFileSize = 2 * 1024 * 1024; // 2MB
if ($fileSize > $maxFileSize) {
exit('图片大小不能超过 2MB');
}
// 将图片移动到上传目录
if (move_uploaded_file($fileTmp, $targetFile)) {
// 将图片信息插入数据库
$sql = "INSERT INTO images (file_name, file_path) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$fileName, $targetFile]);
echo '图片上传成功';
} else {
echo '图片上传失败';
}
}
?>
上述代码通过 $_FILES
全局变量获取上传的图片信息,并进行了一些校验,如文件类型和大小的判断。如果校验通过,将图片移动到指定目录,并将图片信息插入到数据库中。
你可以根据需要调整上传目录、允许的文件类型和最大文件大小等。
如果你希望获取已上传的图片列表,可以使用以下代码:
<?php
require_once 'config.php';
$sql = "SELECT * FROM images";
$stmt = $pdo->query($sql);
$images = $stmt->fetchAll();
foreach ($images as $image) {
echo "图片名称:{$image['file_name']},路径:{$image['file_path']}<br>";
}
?>
上述代码从数据库中查询所有的图片信息,并在页面上显示图片名称和路径。你可以根据实际需求进行修改和美化。
通过上述方法,你可以使用 PHP PDO 在 MySQL 中实现图片上传功能,并能够方便地获取已上传的图片列表。记得在上传图片的目录设置合适的权限,以便 PHP 能够写入文件。
希望本文对你有所帮助,祝你编写出优秀的 PHP 代码!