Problemas Comuns
   
    O item MAX_FILE_SIZE não pode assumir um tamanho de arquivo
    maior que o tamanho de arquivo configurado em upload_max_filesize no arquivo php.ini.
    O valor padrão é de 2 megabytes.
   
   
    Se um limite de memória está ativo, um valor maior para o limite de memória no parâmetro memory_limit pode ser necessário. Tenha certeza de
    estabelecer um limite de memória grande o suficiente através do parâmetro
    memory_limit.
   
   
    Se o tempo máximo de execução definido através do parâmetro max_execution_time
    for muito pequeno, a execução do script pode ultrapassar o limite de tempo. Tenha
    certeza de estabelecer um tempo máximo de execução grande o suficiente através do parâmetro max_execution_time.
   
   Nota: 
    
     O parâmetro max_execution_time somente
     afeta o tempo de execução do script em si. Qualquer tempo gasto com
     atividades que aconteçam fora da execução do script
     como chamadas de sistema usando system(), a função
     sleep(), pesquisas em banco de dados, tempo gasto pelo
     processo de enviar um arquivo, etc. não são considerados no momento de determinar o limite de tempo
     máximo de um script em execução.
    
   
   Aviso
    
     O parâmetro max_input_time define o tempo máximo,
     em segundos, que é permitido ao script a receber entradas, isto inclui
     envio de arquivos. Para um arquivo grande, múltiplos arquivos ou usuários com conexões lentas,
     o padrão de 60 segundos pode ser ultrapassado.
    
    
   
    Se o parâmetro post_max_size for muito pequeno,
    arquivos grandes podem não ser carregados. Tenha certeza de definir o parâmetro
    post_max_size grande o suficiente.
   
   
    O
    parâmetro max_file_uploads
    controla o número máximo de arquivos que podem ser enviados em uma única
    requisição. Caso sejam enviados mais arquivos que o definido neste limite, então
    $_FILES interrompe o processamento de arquivos uma vez que o limite
    tenha sido atingido. Por exemplo, se o parâmetro
    max_file_uploads está definido como
    10, então $_FILES nunca possuirá
    mais de 10 itens.
   
   
    Não validar o arquivo que você está operando pode permitir que os usuários acessem
    informações sensíveis em outros diretórios.
   
   
    Devido ao grande número de estilos de listagem de diretórios não podemos garantir
    que arquivos com nomes exóticos (como os que contém espaços) sejam manuseados corretamente.
   
   
    Um desenvolvedor não deve misturar campos comuns de entrada input e campos de envio de arquivo na mesma
    variável de formulário (usando um nome de campo input como foo[]).