Hay varias directivas que te limitan el tamaño en un upload...
Muchas de ellas no se pueden cambiar en la marcha usando ini_set, porque son previas al script. Si estás usando APACHE deberías agregar a tu carpeta un archivo ".htaccess" con las siguientes directivas
Código:
php_value upload_max_filesize 50M
php_value post_max_size 50M
y en la marcha podés necesitar memory_limit o max_execution_time