show table of icons for uploaded files

I’ve created a model that has uploaded files attached to it. I’m trying to find an elegant way to display a list of these files in the view. Kind of like a gallery (e.g., but something that supports all file types. For images, videos etc it could show a preview, but this is optional. The basic functionality I’m looking for is a table or something else with icons appropriate to the file type. When the user clicks on an icon, the file should download.

Does a widget like this exist somewhere?