This was a new one for me. Every time I tried to upload a photo to a WordPress site, I received a very informative “HTTP Error” message while the upload progress bar read “Crunching…”. Thanks in part to the stunningly generic error message, it took a while to figure out exactly what was going on. The problem, it turns out, was HTTP authentication; I had enabled Apache’s basic HTTP login for the site, but being a plugin, Adobe Flash was not similarly authenticated. So, trying to use the Flash-based image uploader kept silently failing because it couldn’t authenticate with the server. The fix is simple: just tell Apache not to use authentication for the script that handles Flash-based uploads. You can do this by modifying the .htaccess file in the root of your WordPress directory like so:
<FilesMatch "(async-upload.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>