一、存储策略选择

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. 图片上传及存储

  1. 获取上传的图片文件。
  2. 将图片文件路径保存到数据库的image_path字段。
  3. 计算图片大小并保存到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="图片展示" />

三、突破存储,实现高效图片管理

1. 使用云存储服务

2. 图片压缩

3. 图片缓存