You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现ShareX自定义上传器POST请求并获取响应

基于Discord的ShareX图床PHP上传代码实现

ShareX自定义上传器配置(中文翻译)

{
  "版本": "14.1.0",
  "名称": "Discord 上传",
  "目标类型": "图片上传器",
  "请求方法": "POST",
  "请求地址": "https://discord.com/api/v9/channels/CHANNEL HERE/messages",
  "请求头": {
    "authorization": "Discord 令牌"
  },
  "请求体类型": "MultipartFormData",
  "请求参数": {
    "content": null,
    "tts": "false"
  },
  "文件表单字段名": "file",
  "返回图片地址": "{json:['attachments'][0]['url']}",
  "返回缩略图地址": "{json:['attachments'][0]['url']}"
}

对应的PHP POST请求代码

以下是完全匹配上述配置的PHP上传实现,包含请求头构造、多表单数据处理及响应解析:

<?php
// 替换为你的实际配置信息
$channelId = "你的频道ID"; // 替换原配置中的CHANNEL HERE
$discordToken = "你的Discord令牌"; // 替换原配置中的Discord Token here
$imagePath = "./test.png"; // 要上传的本地图片路径

// 构造完整请求地址
$requestUrl = "https://discord.com/api/v9/channels/{$channelId}/messages";

// 初始化cURL会话
$ch = curl_init($requestUrl);

// 组装MultipartFormData参数
$postData = [
    'content' => '', // 对应配置中的null,传空字符串兼容接口要求
    'tts' => 'false',
    'file' => new CURLFile(realpath($imagePath)) // 自动处理文件MIME类型与文件名
];

// 设置cURL核心选项
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        "authorization: {$discordToken}"
    ],
    CURLOPT_RETURNTRANSFER => true, // 让cURL返回响应内容而非直接输出
    CURLOPT_SSL_VERIFYPEER => true, // 开启SSL验证保障请求安全
    CURLOPT_FOLLOWLOCATION => true // 跟随接口重定向
]);

// 执行请求并获取结果
$response = curl_exec($ch);
$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// 处理请求结果
if ($response === false) {
    echo "上传失败: " . curl_error($ch);
} else {
    $responseJson = json_decode($response, true);
    if (json_last_error() === JSON_ERROR_NONE) {
        if (isset($responseJson['attachments'][0]['url'])) {
            echo "上传成功,图片地址: " . $responseJson['attachments'][0]['url'];
        } else {
            echo "上传成功但未获取到图片地址,响应内容: " . $response;
        }
    } else {
        echo "响应解析失败,原始响应: " . $response;
    }
}

// 关闭cURL会话
curl_close($ch);
?>

关键注意事项

  • 确保你的Discord令牌拥有目标频道的发消息和上传附件权限
  • 本地图片路径需正确,realpath()函数会自动解析为绝对路径避免错误
  • 若上传大尺寸图片,需调整PHP配置中的upload_max_filesize和post_max_size参数
  • 生产环境请勿硬编码令牌,建议使用环境变量存储敏感信息

内容的提问来源于stack exchange,提问作者Average_User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:01:07