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

PHP调用Discord Webhook发送附件报错50006解决求助

错误原因

  • 核心问题出在请求体的编码逻辑上:你使用了http_build_query()处理包含curl_file_create对象的POST数组,这个函数会将所有参数序列化为application/x-www-form-urlencoded格式的字符串,直接把文件对象转为无效的文本,导致Discord无法识别你提交的content、file等字段,才会返回「无法发送空消息」的报错。
  • 其次你手动指定了multipart/form-data的请求头但没有配套的边界(boundary)标识,cURL在发送包含文件的表单时会自动生成带正确boundary的Content-Type头,手动写这个头反而会让服务端无法正确拆分表单字段。

修复后代码

<?php 

$url = "WEBHOOK URL HERE";

$POST = [
    // 消息内容
    "content" => "Hello World!",
    // 机器人用户名
    "username" => "testuser",
    // 上传的文件,第三个参数建议和实际文件名保持一致
    "file" => curl_file_create("image.gif", 'image/gif', 'image.gif')
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 直接传POST数组即可,不要用http_build_query处理
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
$response = curl_exec($ch);
// 可选新增错误排查逻辑
if(curl_errno($ch)) {
    var_dump(curl_error($ch));
} else {
    var_dump($response);
}
curl_close($ch);

补充注意事项

请确保image.gif的路径正确,优先使用绝对路径避免脚本读取不到文件的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03