引言

1. 了解HTTP Header

2. 设置Content-Type Header

header('Content-Type: image/jpeg'); // 设置为JPEG格式
  • image/jpeg:JPEG格式
  • image/png:PNG格式
  • image/gif:GIF格式

3. 设置Content-Disposition Header

header('Content-Disposition: inline'); // 图片直接显示
header('Content-Disposition: attachment; filename="image.jpg"'); // 图片下载,并指定文件名

4. 设置Cache-Control Header

header('Cache-Control: max-age=3600'); // 缓存图片1小时

将Cache-Control Header设置为max-age可以指定缓存时间(以秒为单位)。这有助于减少服务器负载,提高页面加载速度。

5. 设置Expires Header

$expires = date("D, d M Y H:i:s", time() + 3600);
header("Expires: $expires"); // 设置图片过期时间为1小时后

6. 示例代码

<?php
// 假设图片文件名为'image.jpg'
$imagePath = 'path/to/image.jpg';

// 检查文件是否存在
if (file_exists($imagePath)) {
    // 获取图片信息
    $imageInfo = getimagesize($imagePath);

    // 设置Header
    header('Content-Type: ' . $imageInfo['mime']);
    header('Content-Disposition: inline');
    header('Cache-Control: max-age=3600');
    header("Expires: " . date("D, d M Y H:i:s", time() + 3600));

    // 读取并输出图片内容
    readfile($imagePath);
} else {
    echo '图片不存在!';
}
?>

总结