当用户上传的文件超过限制时,PHP会做什么


What does PHP do when a user uploads a file over the limit?

我的PHP配置的文件上传限制为2MB。

如果我尝试上传(通过PHP脚本)一个超过2MB的文件,当它达到2MB时,浏览器不会停止,它会上传整个文件,然后我的PHP脚本说它太大了。

我的问题是,为什么浏览器不在2MB时停止并拒绝文件?如果超过限制,文件将不会被存储,那么上传的数据实际会去哪里?

我的VPS配置有512MB RAM和7GB存储空间。这是否意味着有人可以上传大于512MB或7GB的文件,这会因为服务器内存/空间不足而导致服务器崩溃?

PHP只有在请求完成后才能获得请求。如果您想提前中止,Web服务器中有一些方法,如Apache的LimitRequestBody或nginx的client_max_body_size。然而,这些失败非常丑陋,为了让用户更友好,另一个选项是使用分块上传,这个问题中提到了几个选项