CarefreeCMS 文档CarefreeCMS 文档
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
  • API 文档

    • API 文档
    • 认证接口
    • 文章接口
    • 分类接口
    • 标签接口
    • 媒体接口
    • 评论接口
    • 用户接口

媒体接口

媒体库管理相关的 API 接口文档。

上传文件

接口信息

POST /api/media/upload
Authorization: Bearer {token}
Content-Type: multipart/form-data

请求参数

参数类型必填说明
filefile是文件对象
categorystring否分类(image/video/audio/document)
descriptionstring否文件描述

响应示例

{
  "code": 200,
  "message": "上传成功",
  "data": {
    "id": 1,
    "name": "example.jpg",
    "path": "/uploads/2024/01/15/abc123.jpg",
    "url": "https://example.com/uploads/2024/01/15/abc123.jpg",
    "size": 102400,
    "mime_type": "image/jpeg",
    "width": 1920,
    "height": 1080,
    "category": "image",
    "create_time": "2024-01-15 10:00:00"
  }
}

获取媒体列表

接口信息

GET /api/media
Authorization: Bearer {token}

请求参数

参数类型必填说明
pageinteger否页码,默认1
page_sizeinteger否每页数量,默认20
categorystring否分类筛选
keywordstring否关键词搜索
start_datestring否开始日期
end_datestring否结束日期

响应示例

{
  "code": 200,
  "data": {
    "list": [
      {
        "id": 1,
        "name": "example.jpg",
        "path": "/uploads/2024/01/15/abc123.jpg",
        "url": "https://example.com/uploads/2024/01/15/abc123.jpg",
        "size": 102400,
        "mime_type": "image/jpeg",
        "category": "image",
        "create_time": "2024-01-15 10:00:00"
      }
    ],
    "total": 100,
    "page": 1,
    "page_size": 20
  }
}

获取媒体详情

接口信息

GET /api/media/{id}
Authorization: Bearer {token}

响应示例

{
  "code": 200,
  "data": {
    "id": 1,
    "name": "example.jpg",
    "original_name": "photo.jpg",
    "path": "/uploads/2024/01/15/abc123.jpg",
    "url": "https://example.com/uploads/2024/01/15/abc123.jpg",
    "size": 102400,
    "mime_type": "image/jpeg",
    "width": 1920,
    "height": 1080,
    "category": "image",
    "description": "示例图片",
    "user_id": 1,
    "create_time": "2024-01-15 10:00:00"
  }
}

更新媒体信息

接口信息

PUT /api/media/{id}
Authorization: Bearer {token}
Content-Type: application/json

请求参数

参数类型必填说明
namestring否文件名
descriptionstring否描述
categorystring否分类

响应示例

{
  "code": 200,
  "message": "更新成功"
}

删除媒体

接口信息

DELETE /api/media/{id}
Authorization: Bearer {token}

请求参数

参数类型必填说明
delete_fileboolean否是否删除物理文件,默认true

响应示例

{
  "code": 200,
  "message": "删除成功"
}

批量操作

批量删除

DELETE /api/media/batch
Authorization: Bearer {token}
Content-Type: application/json

请求示例

{
  "ids": [1, 2, 3],
  "delete_file": true
}

批量移动

PUT /api/media/batch/move
Authorization: Bearer {token}
Content-Type: application/json

请求示例

{
  "ids": [1, 2, 3],
  "category": "image"
}

图片处理

生成缩略图

POST /api/media/{id}/thumbnail
Authorization: Bearer {token}
Content-Type: application/json

请求参数

参数类型必填说明
widthinteger是宽度
heightinteger是高度
modestring否模式(crop/fit)

响应示例

{
  "code": 200,
  "data": {
    "url": "https://example.com/uploads/2024/01/15/abc123_thumb.jpg"
  }
}

代码示例

JavaScript

import axios from 'axios'

// 上传文件
const uploadFile = async (file) => {
  const formData = new FormData()
  formData.append('file', file)
  formData.append('category', 'image')

  const res = await axios.post('/api/media/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data',
      'Authorization': `Bearer ${localStorage.getItem('token')}`
    }
  })
  return res.data
}

// 获取媒体列表
const getMediaList = async (params) => {
  const res = await axios.get('/api/media', {
    params,
    headers: {
      Authorization: `Bearer ${localStorage.getItem('token')}`
    }
  })
  return res.data
}

PHP

<?php
$token = 'YOUR_JWT_TOKEN';

// 上传文件
$url = 'http://your-domain.com/api/media/upload';
$file = new CURLFile('/path/to/file.jpg');

$data = [
    'file' => $file,
    'category' => 'image'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
]);
$response = curl_exec($ch);
curl_close($ch);

错误处理

常见错误

400 文件格式不支持

{
  "code": 400,
  "message": "不支持的文件格式"
}

413 文件过大

{
  "code": 413,
  "message": "文件大小超过限制"
}

500 上传失败

{
  "code": 500,
  "message": "文件上传失败"
}

相关接口

  • 文章接口
  • 认证接口
在 GitHub 上编辑此页
Prev
标签接口
Next
评论接口