一、存储策略选择
1. 图片存储方式
存储图片文件
存储图片路径
2. 推荐实践
二、MySQL图片存储实现
1. 数据库表设计
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
image_name VARCHAR(255),
image_path VARCHAR(255),
image_size INT
);
2. 图片上传及存储
- 获取上传的图片文件。
- 将图片文件路径保存到数据库的
image_path字段。 - 计算图片大小并保存到
image_size字段。
示例代码:
<?php
// 假设已上传图片文件名为$_FILES['image']['name']
// 1. 获取图片文件信息
$imageInfo = getimagesize($_FILES['image']['tmp_name']);
// 2. 保存图片路径到数据库
$imagePath = 'path/to/uploaded/image/' . $_FILES['image']['name'];
$query = "INSERT INTO images (image_name, image_path, image_size) VALUES (?, ?, ?)";
$stmt = $conn->prepare($query);
$stmt->bind_param("iss", $_FILES['image']['name'], $imagePath, $imageInfo[0] * $imageInfo[1]);
$stmt->execute();
?>
3. 图片读取及展示
示例代码:
<?php
// 假设要展示的图片ID为$_GET['id']
$query = "SELECT image_path FROM images WHERE id = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();
$result = $stmt->get_result();
$imagePath = $result->fetch_assoc()['image_path'];
?>
<img src="<?php echo $imagePath; ?>" alt="图片展示" />