Here's a check-list for file uploading in PHP:
Also make sure your form element containing the file input is NOT a child of another form element. e.g. <form><form><input type="file"></form></form>
Maybe the "accepted" answer solved the original post, but this answer is the one that I found most helpful. When in doubt, look at the source as seen by the browser. Checking off each item in this list and tracing backward, I found my error in a most unexpected place. If you're struggling with a similar problem, believe me, it's probably not a bug in Apache. ;)
The #7 is the common one with me
This doesn't apply to the discussion starter, but I had hosting provider who had their firewall policy too strict which caused some uploads to fail.
wow! thank you for this list. my problem was #2. i was calling $('#my-form').reset(); in the submit handler.