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>