📋 基本信息
默认 API 密钥: tuchuang_2024_secret_key_9527
图片过期时间: 1小时
最大图片大小: 10MB
⚠️ 注意: 所有API请求都需要在请求头中包含
X-API-Key 字段,或在URL参数中传递 api_key 参数。
🔌 API 端点
POST
/api/upload.php
功能:上传base64编码的图片
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
image |
string | 是 | base64编码的图片数据(可包含或不包含data URI前缀) |
请求示例
curl -X POST http://localhost/api/upload.php \
-H "Content-Type: application/json" \
-H "X-API-Key: tuchuang_2024_secret_key_9527" \
-d '{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}'
响应示例
{
"success": true,
"data": {
"image_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6_1729785600",
"image_url": "http://localhost/image/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6_1729785600",
"mime_type": "image/png",
"file_size": 95,
"expires_at": "2024-10-24 15:30:00",
"expires_in": "1 hours"
}
}
GET
/image/{image_id}
功能:访问上传的图片(无需API密钥)
URL参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
image_id |
string | 是 | 上传图片时返回的image_id |
请求示例
curl http://localhost/image/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6_1729785600
响应:直接返回图片二进制数据,Content-Type为对应的图片MIME类型
GET
/api/stats.php
功能:获取系统统计信息
请求示例
curl http://localhost/api/stats.php?api_key=tuchuang_2024_secret_key_9527
响应示例
{
"success": true,
"data": {
"total_images": 42,
"total_size": 5242880,
"today_uploads": 15
}
}
❌ 错误码说明
| HTTP状态码 | 说明 |
|---|---|
200 |
请求成功 |
201 |
创建成功 |
400 |
请求参数错误 |
401 |
未授权(API密钥无效) |
404 |
资源不存在或已过期 |
405 |
请求方法不允许 |
500 |
服务器内部错误 |
💻 使用示例
JavaScript (Fetch API)
// 上传图片
async function uploadImage(base64Image) {
const response = await fetch('http://localhost/api/upload.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'tuchuang_2024_secret_key_9527'
},
body: JSON.stringify({ image: base64Image })
});
const result = await response.json();
if (result.success) {
console.log('图片URL:', result.data.image_url);
return result.data.image_url;
} else {
console.error('上传失败:', result.error);
}
}
Python (requests)
import requests
import base64
# 上传图片
def upload_image(image_path):
with open(image_path, 'rb') as f:
image_data = base64.b64encode(f.read()).decode('utf-8')
response = requests.post(
'http://localhost/api/upload.php',
headers={
'X-API-Key': 'tuchuang_2024_secret_key_9527'
},
json={'image': f'data:image/jpeg;base64,{image_data}'}
)
result = response.json()
if result['success']:
print('图片URL:', result['data']['image_url'])
return result['data']['image_url']
else:
print('上传失败:', result['error'])
🚀 部署说明
✅ 本地测试:
- 导入数据库文件
database.sql - 配置 Nginx(参考 nginx.conf)
- 确保 PHP 扩展:
pdo_mysql,gd - 访问
http://localhost
🌐 生产部署(宝塔服务器):
- 修改
config.php中的SITE_URL为http://103.36.220.50 - 在宝塔面板导入数据库
- 配置网站伪静态规则
- 设置定时任务清理过期图片