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

PHP CURL调用SwiftDil API遇413 Request Entity Too Large错误排查

解决413 Request Entity Too Large 问题的排查步骤

首先得指出你代码里的一个明显bug——这个错误可能会间接加剧请求体过大的问题:
你在back_side字段里错误引用了$_FILES['front_side']['name'],这会导致你把同一张正面图片重复上传两次,总请求体大小直接翻倍,更容易触发413错误。先把这个修正过来:

$fields = array( 
    'front_side' => curl_file_create('temp/' . $_FILES['front_side']['name']), 
    // 这里要改成back_side对应的文件名!
    'back_side' => curl_file_create('temp/' . $_FILES['back_side']['name']), 
    'type' => $document_type, 
    'document_number' => $document_number, 
    'issuing_country' => $issuing_country 
);

接下来针对413错误,我们从几个核心方向排查:

1. 确认SwiftDil API的大小限制

因为500KB以内的文件能正常发送,超过就报错,最可能的原因是SwiftDil API本身设置了请求体或单文件的大小上限。你需要:

  • 查阅SwiftDil的官方文档,找到他们明确标注的最大文件/请求体尺寸;
  • 如果文档里没有说明,直接联系他们的技术支持确认这个限制值。

2. 检查你方服务器的对外请求限制

虽然你已经把大文件成功存到了自己的服务器,但你的服务器在通过CURL向外部API发送请求时,可能存在额外的大小限制:

  • 如果用Nginx作为反向代理,检查nginx.conf或站点配置里的client_max_body_size、proxy_max_temp_file_size参数,确认它们的值足够容纳你的请求体;
  • 如果是Apache服务器,检查httpd.conf里的LimitRequestBody指令,确保没有限制请求体的最大大小;
  • 另外可以顺带确认PHP的post_max_size值(不过你已经能接收大文件到服务器,这个大概率不是问题)。

3. 优化文件大小或采用分块上传

如果确认是API的大小限制导致的,你可以尝试这些解决方案:

  • 在上传到API之前,用PHP的GD库或Imagick对图片进行压缩(比如降低分辨率、调整画质),把文件控制在API允许的范围内;
  • 如果SwiftDil API支持分块上传,可以把大文件拆分成小块分批发送(具体实现需要参考他们的API文档)。

内容的提问来源于stack exchange,提问作者Wouter den Ouden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:29:23