如何优雅地处理超过PHP的`post_max_size`的文件?
我正在处理一个将文件附加到电子邮件的PHP表单,并试图妥善处理上传的文件太大的情况。
我了解到,其中有两个设置php.ini
会影响文件上传的最大大小:upload_max_filesize
和post_max_size
。
如果文件的大小超过upload_max_filesize
,PHP会将文件的大小返回为0。我可以检查一下。
但是,如果超出了范围post_max_size
,我的脚本将以静默方式失败并返回空白表格。
回答:
从文档中:
如果发布数据的大小大于post_max_size,则 。这可以通过多种方式进行跟踪,例如,将$
_GET变量传递给处理数据的脚本,即
因此,不幸的是,PHP似乎没有发送错误。由于它发送的是一个空的$ _POST数组,这就是为什么您的脚本返回空白格式的原因-
它不认为它是POST。(恕我直言,糟糕的设计决策)
似乎更优雅的方法是在post_max_size和$ _SERVER
[‘CONTENT_LENGTH’]之间进行比较。请注意,后者不仅包括上传文件的大小加上帖子数据,还包括多部分序列。
以上是 如何优雅地处理超过PHP的`post_max_size`的文件? 的全部内容, 来源链接: utcz.com/qa/419744.html