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

NextJS使用formidable上传文件生产环境返回413 Entity too large如何解决

问题解决方案

1. 检查formidable的文件大小限制配置

formidable 默认最大上传文件大小阈值和你遇到的10MB触发场景匹配,是高概率诱因。你需要在初始化formidable实例时显式配置大小参数,示例代码如下:

import formidable from 'formidable';

// 示例将最大上传限制设为100MB,可根据需求自行调整
const form = formidable({
  maxFileSize: 100 * 1024 * 1024,
  // 如需支持多文件上传可额外添加 multiples: true
});

2. 检查生产环境反向代理的上传限制

如果你是自行部署NextJS服务,前端挂载了Nginx反向代理,Nginx默认的client_max_body_size参数值为1MB,会直接拦截超过大小的请求返回413错误。
解决方式:在Nginx配置对应站点的server块、或者全局http块中添加如下配置,重载Nginx即可生效:

client_max_body_size 100M;

如果使用IIS、Caddy等其他反向代理,也需要同步修改对应服务的上传大小限制配置。

3. 检查部署平台的Serverless函数限制

如果你使用Vercel、Netlify等Serverless平台部署,平台本身对请求体大小有硬限制:

  • Vercel免费版Serverless函数最大请求体为4.5MB,专业版为10MB
  • Netlify函数最大请求体为6MB
    如果超出平台限制,建议调整上传逻辑,改为前端直传对象存储(如S3、OSS等),不通过NextJS接口中转文件流。

4. 确认bodyParser关闭配置生效

不同版本NextJS关闭bodyParser的方式有差异,请确认配置正确:

  • Page Router版本:需要在对应API路由文件中添加如下导出配置:
export const config = {
  api: {
    bodyParser: false,
  },
};
  • App Router版本:Route Handler默认支持直接读取请求流,无需额外关闭bodyParser,直接处理Request对象即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:36:03