WordPress has a bug. When uploading an image (even a small, 1KB image) the Media uploader stalls and freezes in when Crunching is 100%. This problem happens in both the flash and html uploader. In the HTML uploader you can see a 500 Internal Server Error.
There are 2 different problems that can cause this issue.
One is your server or hosting provider. GoDaddy has since said they have fixed this issue. However, when I contacted support they said to disable Fast CGI for PHP. I responded with a link to the article above. They then helped me out by telling me to update my php5.ini or php.ini file. You’ll find that this solution was found on the WordPress forums also where you set the memory_limit and max_execution_time higher. So in your php.ini or php5.ini if you use php5 (that’s important! trust me, I’ve been frustrated with that before) add the following lines:
max_execution_time = 600
upload_max_filesize = 2M
Adjust as needed. You may also have to End your Web Process to quickly see changes. See godaddy support forums for this.
The 2nd issue with this bug is a more frustrating and disappointing one. I found out that WordPress uses the delete_posts capability to determine whether a user can delete a media file or not. Well, guess what, it also uses the edit_posts capability when it crunches the file too. So if you have a problem where only the Administrator can upload media files fine, check your user’s capabilities. On a side note, to delete media the user needs the delete_posts capability.