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

使用PHP Curl调用CrowdStrike API创建Put文件时遇415不支持媒体类型错误

解决PHP Curl调用CrowdStrike API上传文件的415错误

出现415 Unsupported Media Type错误,主要是以下几个问题导致的,逐个修正即可:

1. 移除手动设置的Content-Type: multipart/form-data

当使用CURLFILE上传文件时,PHP的Curl会自动生成正确的multipart/form-data请求头(包含boundary分隔符)。手动设置这个头会覆盖自动生成的内容,导致服务器无法正确解析请求体结构,这是触发415错误的核心原因。

修改后的请求头数组应为:

$header = [
    $authorization
];

2. 修正file字段名的空格

代码里'file '=> new CURLFILE(...)多了一个空格,字段名需改为'file',和API要求的字段名严格匹配。

3. 移除多余的content字段

根据CrowdStrike Real-Time Response的Put Files API规则,上传文件时不需要content字段,这个多余字段可能干扰服务器对请求的解析,直接删除即可。

修正后的完整代码

$curl = curl_init();

$authorization = 'authorization: Bearer '.trim($token);
$header = [
    $authorization
];

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.us-2.crowdstrike.com/real-time-response/entities/put-files/v1',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => array(
        'name' => 'test_file.jpg',
        'description' => 'testing',
        'file' => new CURLFILE('/C:/test_file.jpg')
    ),
    CURLOPT_HTTPHEADER => $header
));

$response = curl_exec($curl);

额外验证点

  • 确保CURLFILE的文件路径正确,Windows路径可用C:/test_file.jpg或C:\\test_file.jpg两种格式,PHP均能识别。
  • 确认API Token具备Real-Time Response的文件上传权限,权限不足也可能引发异常,但本次415错误核心原因是请求格式问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 03:10:35