使用 1panel 搭建随机图片api

Sherry 发布于 2025-03-28 78 次阅读 文章 最后更新于 2025-03-30 362 字


🍔安装运行环境

随机图片API是基于PHP运行环境搭建的

这是我们采用PHP8

创建运行环境

之后进一步创建网站

🍟调用本地文件图片

创建一个用于存放图片的文件夹,将index.php中放入下方代码。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 设置图片目录的绝对路径
$image_dir = __DIR__ . '/images/';

// 获取所有支持的图片文件(包括 WebP 格式)
$images = array_merge(
    glob($image_dir . "*.webp") ?: [], // 优先支持 WebP 格式
    glob($image_dir . "*.jpg") ?: [],
    glob($image_dir . "*.jpeg") ?: [],
    glob($image_dir . "*.png") ?: [],
    glob($image_dir . "*.gif") ?: [],
    glob($image_dir . "*.PNG") ?: [],
    glob($image_dir . "*.WEBP") ?: [] // 支持大写扩展名
);

// 确保有图片文件
if(empty($images)) {
    die('没有找到图片文件,目录:' . $image_dir);
}

// 随机选择一张图片
$image_path = $images[array_rand($images)];

// 检查文件是否存在
if(!file_exists($image_path)) {
    die('图片文件不存在:' . $image_path);
}

// 获取图片的MIME类型
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $image_path);
finfo_close($finfo);

// 如果是 WebP 格式,确保设置正确的 MIME 类型
if(strtolower(pathinfo($image_path, PATHINFO_EXTENSION)) === 'webp') {
    $mime_type = 'image/webp';
}

// 设置缓存控制头
header('Cache-Control: public, max-age=31536000'); // 缓存一年
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT');

// 设置正确的Content-Type
header('Content-Type: ' . $mime_type);

// 直接输出图片内容
readfile($image_path);
?>

别忘记在你的安全组中开启对应端口

🍕验证效果

输入”IP:端口“,随机图片生成🥰