Should binary files be stored in the database?
Store in the database with a blob

A disadvantage is that it makes your database files quite large and possibly too large to back up with your existing set up. An advantage is integrity and atomicity. 
Store on the filesystem with a link in the database

I've come across such horrible disasters doing this, and it scares me that people keep suggesting it. Some of the disasters included: 


One privileged user who would rearrange the files and frequently break the links between the paths in the DB and where they now are (but somehow this became my fault).  
When moving from one server to another, the ownership of some of the files was lost as the SID for the old machine's administator account (what the old website was running on) was not part of the domain and so the copied files had ACLs that could not be resolved thus presenting users with the username/password/domain login prompt.  
Some of the paths ended up being longer than 256 characters from the C:\ all the way to the .doc and not all versions of NT were able to deal with long paths.   

Store in the filesystem but rename to a hash of the contents and store the hash on the database

The last place I worked at did this based on my explanation of the above scenarios did this. They thought it was a compromise between the organization's inability to obtain experience with large databases (anything larger than about 40G was ordained to be "too big"), the corporate inability to purchase large hard drives, and the inability to purchase a more modern back up solution, and the need to get away from risks #1 &amp; #3 that I identified above. 


My opinion is that storing in the DB as a blob is a better solution and more scalable in a multi-server scenario, especially with failover and availability concerns.