layui怎么解决上传文件时报413 Request Entity Too Large错误

雨芳酱_7859

雨芳酱_7859

2026-10-06

674人浏览

原创

layui 的 size 参数仅前端 kb 级校验,不阻止请求发送;413 是服务端(nginx/后端/cdn)拦截所致,需同步调整 nginx location 块 client_max_body_size、后端 multipart 限制及 cdn 配置,并通过 network 面板与 responsetext 组合判断真实拦截层。

layui怎么解决上传文件时报413 request entity too large错误

Layui 的 size 参数根本拦不住 413,它只在前端做 KB 级校验,不发请求;真报 413,说明请求已发出并被 Nginx 或后端拒绝。

为什么 layui 设置了 size 还是报 413?

因为 size 是纯 JS 校验,单位是 KB,比如 size: 2048 表示文件 > 2MB 时,layui 直接不触发 upload 请求,连 before 都不会进。但只要文件 ≤ 2MB,请求就照发——此时若服务端限制更小(如 Nginx 默认 1MB),必然返回 413。

  • 常见误操作:只改 size,没动 Nginx 或后端配置,用户传 1.9MB 文件仍失败
  • size 建议设得比服务端上限略小(如后端允 50MB,前端设 size: 48000),留出 form 字段、base64 头等额外开销
  • 别信“前端校验够用了”,413 是服务端拦截,和 layui 无关

如何准确定位是 Nginx 拦的还是后端拦的?

浏览器 Network 面板里看真实状态码最可靠。但 error 回调里的 data.status 经常不准——尤其 Nginx 直接拦截时,data.status 往往是 0,而 data.responseText 里含 "Request Entity Too Large" 或 "Payload Too Large"。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 正确判断逻辑应组合:data.status === 413 或 data.status === 0 && data.readyState === 4 && /entity too large|payload too large/i.test(data.responseText)
  • 不要只依赖 data.status,否则会漏判 Nginx 层拦截
  • 如果用 Cloudflare 或其他 CDN,也可能提前拦截并返回 413,响应体同样含关键词

Nginx 的 client_max_body_size 必须写在 location 块里

很多人在 http 或 server 块加了 client_max_body_size 100m,但依然 413——因为 layui 上传请求走的是你配的 url(比如 /api/upload),真正生效的是匹配该路径的 location 块。

  • ✅ 正确写法:location /api/upload { client_max_body_size 200m; }
  • ⚠️ 错误写法:只在 http 块设,但 location / 或具体接口路径下没覆盖,仍用默认 1MB
  • 如果用 proxy_pass 转发,确保目标服务(如 Spring Boot)也同步放宽限制,否则 Nginx 放行了,后端照样 413

后端框架也要同步放开限制

即使 Nginx 放宽了,Spring Boot、Express、PHP-FPM 等仍可能各自设限,必须逐层检查。

  • Spring Boot(2.x+):spring.servlet.multipart.max-file-size=50MB 和 max-request-size=50MB
  • Express + multer:limits: { fileSize: 52428800 }(单位字节)
  • PHP:upload_max_filesize 和 post_max_size 都要调大,且 post_max_size ≥ upload_max_filesize
  • 所有配置改完必须重启对应服务(Nginx reload 不等于后端重启)

真正麻烦的不是改哪一行,而是每一层都得对齐:前端提示值、Nginx client_max_body_size、后端 multipart 限制、临时目录权限、甚至 CDN 缓存策略——漏掉任意一环,用户点上传就卡住或弹“文件过大”,但实际根本没超你写的那个数。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

layui layui菜鸟教程

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2283

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4923

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6010

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5518

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

783

5

nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

383

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3267

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

5945

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

561

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.7万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.9万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习