What you have here is valid, but just some counter points:
Originally posted by drawmack
1) If you use files then you have to make sure you clean up after yourself, where as most of this is handled for you if you use the database
Putting it in a database to work around cleanup is being lazy. Its not difficult to create you're own delete function to delete from a DB and the directory. Sure, it'll take a few more minutes to write, but it'll be worth it.
Originally posted by drawmack
2) What type of database are you using. Some are better at handeling large chunks of data (i.e. images) then others.
Even MS SQL has issues with blobs (under v7 & v2000). Another concern is databases are not all created equal. When it comes time to port your solution to another web server and database engine, you may find it much more painful if you have to rewrite code and create work arounds for unexpected blob issues. The other approach of putting the files in a directory would completely save you of this worry and hassle.
Originally posted by drawmack
3) How much protection do you want on the images. Putting them in the database puts another layer on the onion.
Protection is the responsibility of the coder, not the DB. With a file system setup, you can store the images in a non-web accessible directory and use PHP to validate the user and then read the bits and feed them back to the browser (or use .htaccess). This is exactly the same way you would do it with a database, the only difference is there's very little burden on the database engine if all it has to do is validate a user versus trying to validate a user and send back a file as well.
Originally posted by drawmack
4) How many records will the database store. If the database is already going to be huge then you should probably not put binary data into it, but if the database is going to be small then it is probably okay to just stick them in the database.
Thinking this way is a trap in my opinion. Essentially, you end up building an app that doesn't scale well. Its the classic, "build it right the first time" is my approach. But this is just opinion.