I\'m trying to create a website in which I need to store a few user uploaded files (like some profile images, some xml files etc).
So what is the best way to store those
A workable solution will depend on your requirements, e.g. how many users are you expecting. A one-directory-per-user solution might hit some filesystem limitations soon (for ext3, the max number of subdirectories in one directory is fixed to 32000).
One-file-per-user should be ok for a long while (see: How many files in a directory is too many?).
Finally, if your userbase grows you could use a fixed number of shards (e.g. based on the userid) to limit both the number of directories and the number of files per directory (as an example for this, see how git stores its objects in loose format).
Well you have a few options.
The best way will depend on your application, timeframe, and your experience. Option 1 would probably be the easiest. Option 2 would probably be the most flexible. Option 3 would likely be the best performing if it meets the needs of your documents.