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

GLPI API文件上传报错ERROR_UPLOAD_FILE_TOO_BIG_POST_MAX_SIZE,求正确方法

GLPI API文件上传错误解决及正确实现

错误ERROR_UPLOAD_FILE_TOO_BIG_POST_MAX_SIZE的解决步骤

这个错误由POST请求尺寸限制触发,需从以下层面调整:

  • 调整PHP配置项
    修改php.ini的两个关键参数(有权限的情况),或通过ini_set在代码中临时设置(取决于服务器允许与否):

    • post_max_size: 设置为大于等于目标文件大小,例如20M(需确保值大于upload_max_filesize)
    • upload_max_filesize: 设置为不小于目标文件大小,例如15M
      修改后重启PHP-FPM或Web服务器生效。
  • 检查GLPI系统设置
    登录GLPI后台,进入设置 > 常规 > 文件上传,确认「最大文件大小」配置值,该值不能超过PHP中upload_max_filesize的设置,按需调整至合适数值。

正确的GLPI API文件上传代码实现

你代码中用@指定文件路径是旧版PHP用法,现在应使用CURLFile类处理文件上传,确保请求以multipart/form-data格式发送,避免异常。修改后的代码如下:

public static function uploadDocument(TicketRequest $request)
{
    $client = new static();

    if ($request->hasFile('file')) {
        $file = $request->file('file');
        $file_name = $file->getClientOriginalName();
        $file_path = $file->getPathname();
        $file_mime = $file->getMimeType();

        $uploadManifest = [
            "input" => [
                "name" => $request['document_title'],
                "_filename" => [$file_name],
            ],
        ];

        // 用CURLFile替代@语法,适配新版PHP文件上传规范
        $uploaded_file = new \CURLFile($file_path, $file_mime, $file_name);

        $result = $client->upload("Document", [
            'uploadManifest' => json_encode($uploadManifest),
            'filename[0]' => $uploaded_file,
        ]);
    }
}

额外注意事项

  • 确保你的client类的upload方法正确处理multipart/form-data请求,而非默认的application/json,文件上传必须使用多部分表单格式。
  • 上传大文件时,可检查服务器的max_input_time和memory_limit配置,避免超时或内存不足导致上传失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:25:13