1

post_max_size上传的文件超过php时如何显示错误?

print_r($_FILES);

当我超过post_max_size

array()

我从 php.net 得到这个,但我不明白,也不知道该怎么做,

如果 post 数据的大小大于 post_max_size,则 $_POST 和 $_FILES 超全局变量为空。这可以通过多种方式进行跟踪,例如通过将$_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>
4

4 回答 4

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;
}
于 2011-08-20T17:00:16.343 回答
3

如果$_SERVER['CONTENT_LENGTH']不为零并且$_POST$_FILES空,则上传太大。

于 2011-08-20T18:50:50.440 回答
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;
    }
}
于 2011-08-20T16:50:09.530 回答
0

就像是...

if ($_FILES["file"]["size"] < 2000000000)
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["ACfile"]["error"] . "<br />";
    }
}
于 2011-08-20T16:26:33.350 回答