PHP: Qual o sentido de UPLOAD_ERR_INI_SIZE?
O manual do PHP tem uma seção chamadaManipulação de uploads de arquivos. Essa seção tem uma subseção chamadaensagens de erro explicadas. Essa subseção descreve um erro chamado "UPLOAD_ERR_INI_SIZE":
Valor: 1; O arquivo enviado excede o upload_max_filesize diretiva em php.ini.
No entanto, na minha experiência, é impossível verificar esse erro usando UPLOAD_ERR_INI_SIZE, porque se um usuário carregar um arquivo que exceda a diretiva upload_max_filesize no php.ini, a superglobal $ _FILES estará vazia. Deseja testá-lo por si mesmo? Salve isso como "upload_test.php" e tente fazer upload de um arquivo abaixo do limite e, em seguida, um arquivo acima do limite:
<?php
if (isset($_GET['submitted']) && $_GET['submitted'] === 'true')
{
echo 'Contents of $_POST:<hr><pre>';
print_r($_POST);
echo '</pre><hr>Contents of $_FILES:<hr><pre>';
print_r($_FILES);
echo '</pre><hr>';
exit;
}
$max_filesize_in_mib = min((int)(ini_get('upload_max_filesize')), (int)(ini_get('post_max_size')), (int)(ini_get('memory_limit')));
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PHP Upload Test</title>
</head>
<body>
<h1>Upload a File (Maximum File Size: <?php echo $max_filesize_in_mib; ?> MiB)</h1>
<form action="upload_test.php?submitted=true" enctype="multipart/form-data" method="post">
<input type="file" name="upload_test">
<input type="hidden" name="random_field" value="You should see this field in the $_POST superglobal.">
<input type="submit" value="Upload">
</form>
</body>
</html>
Então, minha pergunta é a seguinte: qual é o sentido de UPLOAD_ERR_INI_SIZE se você nunca pode verificar isso?