如何优雅地处理超过PHP的`post_max_size`的文件?

我正在处理一个将文件附加到电子邮件的PHP表单,并试图妥善处理上传的文件太大的情况。

我了解到,其中有两个设置php.ini会影响文件上传的最大大小:upload_max_filesizepost_max_size

如果文件的大小超过upload_max_filesize,PHP会将文件的大小返回为0。我可以检查一下。

但是,如果超出了范围post_max_size,我的脚本将以静默方式失败并返回空白表格。

回答:

从文档中:

如果发布数据的大小大于post_max_size,则 。这可以通过多种方式进行跟踪,例如,将$

_GET变量传递给处理数据的脚本,即

,然后检查$ _GET

[‘processed’]是否为组。

因此,不幸的是,PHP似乎没有发送错误。由于它发送的是一个空的$ _POST数组,这就是为什么您的脚本返回空白格式的原因-

它不认为它是POST。(恕我直言,糟糕的设计决策)

似乎更优雅的方法是在post_max_size和$ _SERVER

[‘CONTENT_LENGTH’]之间进行比较。请注意,后者不仅包括上传文件的大小加上帖子数据,还包括多部分序列。

以上是 如何优雅地处理超过PHP的`post_max_size`的文件? 的全部内容, 来源链接: utcz.com/qa/419744.html

回到顶部