Php 如何避免:警告:第0行中47820076字节的帖子内容长度超过了未知的8388608字节的限制

Php 如何避免:警告:第0行中47820076字节的帖子内容长度超过了未知的8388608字节的限制,php,Php,我发布了一个图像文件到服务器,一切都很好。然而,当用户发布更大的内容时,我会收到此警告。我能做些什么来避免这个警告 我不想要隐藏警告或增加帖子大小的解决方案。我想要一个能够阻止请求将文件完全上传到服务器并捕获该警告的东西。您可以做的一件事是在HTML表单上指定最大大小 <input type="hidden" name="MAX_FILE_SIZE" value="4194304" /> 它不是防弹的,但有一定的影响。为什么这不是很好解释了-它只是由PHP检查,所以上传将开始

我发布了一个图像文件到服务器,一切都很好。然而,当用户发布更大的内容时,我会收到此警告。我能做些什么来避免这个警告


我不想要隐藏警告或增加帖子大小的解决方案。我想要一个能够阻止请求将文件完全上传到服务器并捕获该警告的东西。

您可以做的一件事是在HTML表单上指定最大大小

<input type="hidden" name="MAX_FILE_SIZE" value="4194304" /> 

它不是防弹的,但有一定的影响。为什么这不是很好解释了-它只是由PHP检查,所以上传将开始并继续,直到达到这个限制


我的建议是,您可以将其与javascript解决方案结合使用,如下所述。当然,它只有在启用javascript的情况下才能工作。

这就是我的工作原理。当PHP看到一个太大的文件时,似乎会删除所有POST数据。所以这个代码片段对我很有用:

if ($_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) < 1 ) {
    $_SESSION['error'] = 'File upload size exceeded';
    header('Location: index.php');
    return;
}
if($\u服务器['REQUEST\u方法']='POST'&&count($\u POST)<1){
$\u会话['error']=“超出了文件上载大小”;
标题('Location:index.php');
返回;
}

当然,您的页面应该设计为不提交没有输入参数的空帖子页面。

唯一可以阻止请求发生的事情是浏览器。由于HTML没有提供一种方法来指示浏览器施加限制,因此您运气不好。您可以在jQuery中检查文件大小并阻止表单提交。@ash-这可能是可能的。。但是这个问题是用PHP标记的,而不是用jQuery。我知道,但是他想知道一个解决方案,它可以完全阻止上传,而不让服务器发出警告。在这种情况下,唯一的选择是从客户端而不是服务器端阻止它。jQuery可能是一个解决方案,对吗。有一个问题:文件是上载到服务器上的,还是在超过php.ini指定的大小时被丢弃?该设置无法覆盖php.ini/httpd.conf设置。这基本上是无用的绒毛,使人们感觉更好。否则,任何人都可以通过在浏览器中修改html来绕过服务器端限制。@MarcB-um,这不是覆盖任何内容,而是一个额外的限制?充其量只是提示浏览器不允许任何超过该大小的内容。但在现实世界中,它几乎是无用的。@MarcB如果你不熟悉它,请在做出这样的声明之前仔细阅读。这不是对浏览器的提示,而是PHPs的一个功能。