In php.ini it’s important that these two variables are set right:
upload_max_filesize = 2M
post_max_size = 8M
Very often people will up the upload_max_filesize to something like 20M without updating the post_max_size.
Then if you’re on IIS, there is one more gotcha.
There’s an upload setting in C:\WINNT\system32\inetsrv\MetaBase.xml — the default is 200KB. Up that to what you think is necessary for your web app.