Just out of curiousity, why are you using a BFILE field to store the info...? Wouldn't it make more sense to use a normal text field and just store a relative URL? That way you don't have to worry about the format of the BFILE field, you can just dump a URL out to the ASP page...
Something like this comes to mind...
Upload.asp -> stores the file, it's location and any other descriptive stuff...
Browse.asp -> reads the database for available files and displays the info...
Download.asp -> gets a link to the file along with size and other info.
So, you would have the upload.asp page store the file in a directory (call it upload for the sake of argument and it's at /upload on the web tree). Once this file is uploaded, you store some tidbits of info in the DB (i.e. file name (test.mp3), file size (250Kb), who uploaded (brandon), when uploaded (12/2/2002 1:30 pm), etc.). Now the browse.asp page will allow you to load all the info in the database that fits some specified criteria (just standard ASP database stuff). And once you find something you like, download.asp generates a page with a hyperlink to the file and anything else you want to display (file size, contributor).
Now if all you're files are always in the same directory, you can just store the file name and build the URL with that info:
<a href="/upload/<%= objRS("filename") %>"><%= objRS("filename") %></a>
(objRS is an ADO Recordset talking to the database)
If your files are in different directories, it's a little more complicated, but not significantly so...
Sorry for the long winded response, but hopefully it helps...