$ _Files ['arquivo'] ['size'] ecoando 0 (zero) para arquivos sobre o upload_max_filesize
-
20-09-2019 - |
Pergunta
O problema é que quero verificar se o arquivo é muito grande para fazer upload para poder exibir uma mensagem de erro relevante, mas quando o arquivo é maior que o upload_max_filesize em php.ini, parece estar exibindo apenas um 0.
Por que isso está acontecendo? Como posso testar que o arquivo é muito grande para dar um erro relevante?
Solução
Ver http://php.net/manual/en/features.file-upload.errors.php
Trecho relevante:
Desde o PHP 4.2.0, o PHP retorna um código de erro apropriado junto com a matriz do arquivo. O código de erro pode ser encontrado no segmento de erro da matriz de arquivos criada durante o upload do arquivo pelo PHP. Em outras palavras, o erro pode ser encontrado em $ _files ['userfile'] ['erro'].
Upload_err_ok Valor: 0; Não há erro, o arquivo enviado com sucesso.
Upload_err_ini_size valor: 1; O arquivo carregado excede a diretiva upload_max_filesize em php.ini.
Outras dicas
O fato de o arquivo estar presente e dizer 0 indica que ocorreu um erro ... geralmente está acima do limite do tamanho do arquivo. Esse é o erro relevante.
EDIT: Como o comentarista abaixo menciona, o erro relevante está em $ _files ['userfile'] ['erro'].