要上传图片并保存到数据库,需要先创建一个表来存储图片的相关信息,包括图片的文件名、文件类型、文件大小等。然后使用PHP的文件上传功能将图片上传到服务器,并将上传的图片信息保存到数据库中。
以下是一个简单的示例代码:
- 创建一个名为
images
的数据库表,包括id
(自增主键)、filename
、filetype
和filesize
字段。
CREATE TABLE images ( id INT AUTO_INCREMENT PRIMARY KEY, filename VARCHAR(255), filetype VARCHAR(255), filesize INT );
- 创建一个包含文件上传表单的HTML页面。
- 创建一个名为
upload.php
的PHP文件,用于处理文件上传和保存到数据库的逻辑。
connect_error) { die("数据库连接失败: " . $conn->connect_error); } // 处理文件上传 if ($_SERVER["REQUEST_METHOD"] == "POST") { $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["image"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 检查图片文件是否为真实的图片 if(isset($_POST["submit"])) { $check = getimagesize($_FILES["image"]["tmp_name"]); if($check !== false) { echo "文件是一个图片 - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "文件不是一个图片."; $uploadOk = 0; } } // 检查文件是否已存在 if (file_exists($target_file)) { echo "文件已存在."; $uploadOk = 0; } // 检查文件大小 if ($_FILES["image"]["size"] > 500000) { echo "文件太大."; $uploadOk = 0; } // 允许特定的文件格式 if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "只允许JPG, JPEG, PNG 和 GIF文件."; $uploadOk = 0; } // 检查是否有错误发生 if ($uploadOk == 0) { echo "上传失败."; } else { // 上传文件 if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) { echo "文件上传成功."; // 将图片信息保存到数据库 $filename = basename($_FILES["image"]["name"]); $filetype = $_FILES["image"]["type"]; $filesize = $_FILES["image"]["size"]; $sql = "INSERT INTO images (filename, filetype, filesize) VALUES ('$filename', '$filetype', '$filesize')"; if ($conn->query($sql) === TRUE) { echo "图片信息保存成功."; } else { echo "Error: " . $sql . " " . $conn->error; } } else { echo "文件上传失败."; } } } $conn->close(); ?>
这样,当用户选择并上传图片后,图片将会被保存到服务器的uploads/
文件夹下,并将图片的相关信息保存到images
表中。