如果上传的文件超过post_max_size
php?
print_r($_FILES);
当我超过post_max_size
array()
我是从php.net得到的,但我不明白,不知道该怎么做,
如果发布数据的大小大于post_max_size,则为$ _POST和 $ _FILES superglobals是空的。这可以通过各种方式进行跟踪, 例如通过将$ _GET变量传递给处理数据的脚本, 即,然后检查是否 $ _GET ['processed']已设置。
这是我的表格,
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="file[]" />
<input type="submit" name="upload" value="Submit"/>
</form>
答案 0 :(得分:3)
我稍微修改了toopay的代码,我认为你正在寻找这个。 ini_get('post_max_size')可帮助您获得允许的最大大小。
$file_size = $_FILES['your-html-field-name']['size'];
$max_size = ini_get('post_max_size'); // Getting max size from php.ini
// Convert the file size to kilobytes
if($file_size > 0)
{
$file_size = round($file_size/1024, 2);
}
// Is the file size within the allowed maximum?
if ($file_size >= $max_size)
{
// set error flag or something...
// ...
return FALSE;
}
else
{
// continue process
// ...
return TRUE;
}
答案 1 :(得分:3)
如果$_SERVER['CONTENT_LENGTH']
非零并且$_POST
和$_FILES
为空,则上传量太大。
答案 2 :(得分:1)
您可以编写简单的大小验证,以避免...
$max = count($_FILES['file']);
for ($i = 0; $i < $max; $i++)
{
$file_size = $_FILES['file']['size'][$i];
$max_size = 1000; // Define max size in Kb, for example 1Mb
// Convert the file size to kilobytes
if($file_size > 0)
{
$file_size = round($file_size/1024, 2);
}
// Is the file size within the allowed maximum?
if ($file_size > $max_size)
{
// set error flag or something...
// ...
return FALSE;
}
else
{
// continue process
// ...
return TRUE;
}
}
答案 3 :(得分:0)
像...一样的东西。
if ($_FILES["file"]["size"] < 2000000000)
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["ACfile"]["error"] . "<br />";
}
}