Skip to content
POST{BASE_URL}/wx-api/api/cdn/uploadImage
写操作实测 2026-09-06CDN 文件JSON · Bearer App Token · body appid

上传图片到 CDN

把本地图片(base64)上传到腾讯 CDN,拿到发图/下载所需的媒体凭证。这是 message/sendImagesendMiniProgram 封面图等的凭证来源。

说明与注意

请求参数

参数必填类型说明
appidstring实例 appid,标识操作哪个已登录账号。示例:we_xxxxxxxxxxxxxxx
fileNamestring文件名。示例:示例图片.jpeg
base64string文件 base64,不含 data: 前缀;单次请求体最大 8MB,超过时用上传大文件到 CDN。示例:<图片 base64>

请求示例

http
POST {BASE_URL}/wx-api/api/cdn/uploadImage
Authorization: Bearer <你的 App Token>
Content-Type: application/json

{
  "appid": "we_xxxxxxxxxxxxxxx",
  "fileName": "示例图片.jpeg",
  "base64": "<图片 base64>"
}
bash
curl -X POST '{BASE_URL}/wx-api/api/cdn/uploadImage' \
  -H 'Authorization: Bearer <你的 App Token>' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "appid": "we_xxxxxxxxxxxxxxx",
  "fileName": "示例图片.jpeg",
  "base64": "<图片 base64>"
}'
python
import requests

url = "{BASE_URL}/wx-api/api/cdn/uploadImage"
headers = {"Authorization": "Bearer <你的 App Token>", "Content-Type": "application/json"}
body = """{
  "appid": "we_xxxxxxxxxxxxxxx",
  "fileName": "示例图片.jpeg",
  "base64": "<图片 base64>"
}"""

resp = requests.post(url, headers=headers, data=body.encode("utf-8"))
print(resp.text)
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

String url = "{BASE_URL}/wx-api/api/cdn/uploadImage";
String body = "{\n" +
    "  \"appid\": \"we_xxxxxxxxxxxxxxx\",\n" +
    "  \"fileName\": \"示例图片.jpeg\",\n" +
    "  \"base64\": \"<图片 base64>\"\n" +
    "}";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create(url))
    .header("Authorization", "Bearer <你的 App Token>")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
php
<?php

$url = '{BASE_URL}/wx-api/api/cdn/uploadImage';
$body = <<<'JSON'
{
  "appid": "we_xxxxxxxxxxxxxxx",
  "fileName": "示例图片.jpeg",
  "base64": "<图片 base64>"
}
JSON;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer <你的 App Token>',
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

响应示例

json
{
  "code": 0,
  "data": {
    "id": "3068…0400",
    "size": 3788,
    "width": 200,
    "height": 120,
    "aesKey": "a80e52a7191df0a1c2aac34076898df4",
    "md5": "2228e4e55326a9e5c5478b40a22499d0",
    "midImageFileSize": 3562,
    "thumbFileSize": 3562,
    "thumbWidth": 200,
    "thumbHeight": 120,
    "thumbMd5": "9736a9f86ba94311a28e1b4ed7115a5a"
  },
  "detail": "",
  "message": "ok",
  "time": "2026-09-06 11:40:54"
}

响应字段

响应字段(16 项)
字段类型说明
codeint64统一封套状态码:0=成功,负数=失败
dataobject图片凭证,含 id 等字段,可原样传给发送图片消息content
data.idstring记录/文件业务标识
data.sizeint64文件字节数
data.widthint64宽(像素)
data.heightint64高(像素)
data.aesKeystringAES 下载解密密钥;CDN 存的是加密字节,下载后用它解密
data.md5string文件内容 MD5,收发方一致性校验
data.midImageFileSizeint64中图字节数
data.thumbFileSizeint64缩略图字节数
data.thumbWidthint64缩略图宽
data.thumbHeightint64缩略图高
data.thumbMd5string缩略图 MD5
detailstring附加明细,通常为空
messagestring文案:成功为 ok;失败形如 -码|描述
timestring服务端处理时间 YYYY-MM-DD HH:MM:SS

下一步