Uploaded file was empty
I had the same problem and all PHP settings were set OK. I couldn't upload a 2MB file, but uploading a 20KB file was fine. 

The problem was that the /tmp folder was almost completely full (because PHP stores the temporary file in /tmp before moving it to web/user space i.e. your assets folder). Freeing up space in this folder solved the issue.