I don't think you'll need any special postgresql things to make that work.
I would consider making it a bit more generic so you can have an intermediate table that defines the type your accessing and a table to hold the things.
So, you'd have a master table with the user_id in it, then a join table of something like:
user_id references user(user_id), file_type references type_list(id), file_info references file_info(id)
and the file_type would be something like:
file_type: id pk, description text, mime_type text -- that last one could reference a list of mime types if you wanted to make sure they're valid.
file_info would be something like:
file_info: id pk, description text, path text, etc...
Does that make sense? I'd draw an ERD, but I don't have any good software to do it on my laptop.