Como $_FILES['fieldname']['errors']
contém 0 (que é UPLOAD_ERR_OK
), o upload real foi bem-sucedido. O que está falhando é a tentativa de mover o arquivo temporário para o local especificado, e é por isso que move_uploaded_file()
está retornando false. Você está fazendo algo assim:
move_uploaded_file($_FILES['fieldname']['tmp_name'], '/srv/www/uploads')
O problema mais provável é que o PHP não tem permissão de gravação para o diretório que você especificou como o segundo parâmetro. Descubra o que o usuário PHP está executando como (provavelmente algo como www-data
) e certifique-se de que esse usuário tenha permissão de gravação:
chown -R www-data /srv/www/uploads
chmod -R u=rwX,g=rwX,o=rX /srv/www/uploads