I had this same problem and it was from WordPress working in a different directory than the root, trying to upload to a tmp folder that doesn’t exist.
If you are using WordPress 2.7, go to wp-admin/includes/file.php, and after line 260, add this line temporarily:
echo getcwd();
This will tell you the current working directory. If there is more than just "/"
, you will need to add this to your PHP temporary directory line as well instead of just the usual "/tmp"
So, I changed my php.ini file from upload_tmp_dir ="/tmp/"
to
upload_tmp_dir ="/usr/home/usernamehere/tmp/"
Works now!