PHP 后内容长度超过限制
Posted
技术标签:
【中文标题】PHP 后内容长度超过限制【英文标题】:PHP Post-Content Length Exceeds Limit 【发布时间】:2013-09-08 14:17:22 【问题描述】:我的图片上传器设置了一条错误消息,当上传的图片大于特定大小时显示。但是,如果我上传了非常大的内容,错误消息会被绕过,并且用户会看到我不希望他们看到的 POST Content-Length exceeded 错误消息。谁能帮我弄清楚为什么太大的图像文件没有显示错误消息?
这是上传照片时调用的验证函数:
//------------------------------
private function _verify($fn)
//------------------------------
global $_WEBCONFIG;
$isValid = TRUE;
$userID = isset($_POST["hidId"]) ? (int)$_POST["hidId"] : 0;
$this->record2->p_id = $this->proId;
$fieldName = "txtName";
$fieldValue = SanitizeData($_POST[$fieldName]);
if (!$fieldValue || strlen($fieldValue = trim($fieldValue)) == 0)
$this->record2->i_name = '';
else
$this->record2->i_name = $fieldValue;
$fieldName = "fleImage";
if (isset($_FILES[$fieldName]) && strlen($_FILES[$fieldName]['name']) > 0)
$fieldValue = $_FILES[$fieldName]['name'];
$file_ext = strtolower(GetExtName($fieldValue));
$arExts = explode(",", VALID_IMGS);
if (!in_array($file_ext, $arExts))
$this->errors[] = "Invalid Image Format. (Allowed image types: " . VALID_IMGS . ")";
$isValid = FALSE;
else
$size = getimagesize($_FILES[$fieldName]['tmp_name']);
if ($size[0] < $_WEBCONFIG['THUMB_WIDTH'] || $size[1] < $_WEBCONFIG['THUMB_HEIGHT'])
$this->errors[] = "Invalid Image Size. (Image Dimensions: " . $_WEBCONFIG['IMAGE_WIDTH'] . " x " . $_WEBCONFIG['IMAGE_HEIGHT'] . " or larger)";
$isValid = FALSE;
$imageSize = filesize($_FILES[$fieldName]['tmp_name']);
if ($imageSize > 16777216)
$this->errors[] = "Invalid File Size. File size must be smaller than 128 MB.";
$isValid = FALSE;
else if ($fn == 0)
$this->errors[] = "Please upload an Image (Image Dimensions: " . $_WEBCONFIG['IMAGE_WIDTH'] . " x " . $_WEBCONFIG['IMAGE_HEIGHT'] . " or larger.)";
$isValid = FALSE;
$fieldName = "txtOrder";
$fieldValue = SanitizeData($_POST[$fieldName]);
if (strlen($fieldValue = trim($fieldValue)) == 0)
$this->record2->i_sort_id = 99999;
else
$this->record2->i_sort_id = $fieldValue;
return $isValid;
//end function
我上传的绕过错误消息的图像大小是 37.4 MB
【问题讨论】:
【参考方案1】:该错误很可能是由服务器发送的。服务器将在 php.ini 中有可以配置的设置。例如
memory_limit = 32M
upload_max_filesize = 10M
post_max_size = 20M
php.ini 文件通常存储在 /etc/php.ini 或 /etc/php.d/cgi/php.ini 或 /usr/local/etc/php.ini 但大多数网络主机都提供了一个选项在控制面板中编辑此文件
【讨论】:
它不会增加文件大小,这就是为什么我需要知道如何在 php 文件中显示错误或解决这个问题。我尝试将ini_set('upload_max_filesize', '10M');
和post_max_size
添加到update-images.php 页面的顶部,但我仍然无法捕捉到它。
您可以通过 .htaccess 对其进行配置,方法是将其添加到其中:php_value memory_limit 36M
、php_value post_max_size 36M
、php_value upload_max_filesize 32M
或尝试添加多个 ini_set,例如:ini_set('meemory_limit', '96M');
、ini_set('post_max_size', '64M');
、@987654329 @
我无权访问 htaccess,但我按照您的建议添加了其余的 ini_set,但我无法通过它。我正打算将文本添加到将客户链接到图像压缩器站点的上传页面,但每个在线图像压缩器都会在我尝试上传的图像上出错。实在是太大了!
由于向php文件中添加代码不起作用,我恳求并恳求IT增加服务器的大小,所以我们现在都很好!感谢您的帮助!以上是关于PHP 后内容长度超过限制的主要内容,如果未能解决你的问题,请参考以下文章
PHP 警告:66192047 字节的 POST 内容长度超过了 8388608 字节的限制
PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制
PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制
PHP 警告:8978294 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制