Um problema frequente para quem usa PHP e faz upload de arquivos é o upload de grandes arquivos, que muitas vezes passam do limite de tamanho ou limite de tempo permitidos pela configuraçào padrão.

É possível alterar as configurações relacionadas à isto tanto no arquivo php.ini, quanto num arquivo .htaccess (caso você não tenha acesso ao php.ini e esteja usando o Apache).

No php.ini, altere as diretivas abaixo:

# Tamanho máximo do upload (em MB)
upload_max_filesize = 20M

# Tamanho máximo de arquivos enviados via post (em MB)
post_max_size = 20M

# Tempo máximo de execução de um script (em segundos)
max_execution_time = 1800

# Tempo máximo para processar um upload (em segundos)
max_input_time = 1800

# Quantidade máxima de memória que um script pode usar (em MB)
memory_limit = 50M

A alternativa equivalente, mas usando o .htaccess ao invés do php.ini:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 1800
php_value max_input_time 1800
php_value memory_limit 50M

E um lembrete: max_execution_time pode ser alterada no próprio script (sem precisar mexer no php.ini ou no .htaccess) através da função set_time_limit.