views:

2790

answers:

5

I’m writing an upload function in .NET for presentation images on user profiles. I’m choosing between two different ways of doing it, and would like to ask on advice and opinions as to the pros and cons.

  1. Store the images directly on the file system

  2. Store the images in the database

So far I’ve been mostly pro the first option – naming the images after the usernames, as each user can only have one presentation image. Then I do a check in the designated path if the user has an image, if not display a default “no image”-image.

Another thing I like about this is that it saves space in the DB – the DB will be pretty heavy without the extra binary load.

I’m sure there are other aspects that I’ve not thought about, so I’d like to hear your opinions on this. If anyone’s got a radically different solution to the problem, please share that as well!

+4  A: 

Your question has been answered before on StackOverflow:

Store pictures as files or in the database for a web app

Including many other duplicate questions!

X-Istence
Well, thanks for pointing me there then...
Marcus L
+1  A: 

In general, it is better to store files on the file system. File systems are already tuned for storing files. However, this does have its drawbacks, particularly in terms of management, backup, restore and it is somewhat of a flimsy tie between a varchar file path field in the database and a file in the file system. What database system are you using? I think if you are using SQL Server 2008, that the new FileStream type gives a very good method for storing files in that database.

Edit: Note I'm really talking about more generally about storing files in the database. There is some extra complexity involved in trying to store images you intend to display on HTML pages in the database.

BobbyShaftoe
A: 

Filesystem is good, but is not practical with more than 3000 image per folder. It's better to write automatic folder creation for every 3000 images blocks.

Yeah, somehow I misread the bit about images. I leave my post as most of the files in db vs file system discussions on SO don't usually discuss FileStream. I think for images you mean to display, store them as files.
BobbyShaftoe
But why is it not practical for 3000+ files? Search/access times?
Marcus L
Yes, the time to access to files explodes above 1000 per folder.You could say you don't mind. But indeed, your administrator will care about fast backup/restore. The efficient solution is to make folders
A: 

How about storing doc, pdf, xls, jpg files? Which one recommended?

I am going to work on a document management system which might store 10000 files but the problem is I am very worry about virus spreading if we use file system technique.

A: 

data redundency and inconsistency difficulty in accessing of data data isolation integrity constraints atomicity problem concurrent access and anomalies (updation security problem

aghi