Below are the contents of my /eklektos/files/audio/ folder. If you want to download the MP3 you must right-click (or command-click) the icon and choose "Save Target As..." To play a song simply click on the icon.
Song
Artist
Album
<%
Function ConvertBin(Binary)
'This function converts a binary byte into an ASCII byte.
for i = 1 to LenB(Binary)
strChar = chr(AscB(MidB(Binary,i,1)))
ConvertBin = ConvertBin & strChar
Next
End Function
dim objStream
dim strTag, strSongName, strArtist, strAlbum, strYear, _
strComment, strGenre, strFile
'Specify the folder to iterate through, displaying all the MP3s
Const folder = "E:\Inetpub\davidcatalano.com\www\eklektos\files\audio\"
'Const folder = "D:\Web Store\stage.davidcatalano.com\www\eklektos\files\audio"
'Grab the folder information
'For more information on this technique below, check out this FAQ:
' http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=90
Dim objFSO, objFolder, objFile
Set objFSO = Server.CreateObject("Scripting.FileSYstemObject")
Set objFolder = objFSO.GetFolder(folder)
'Create the Stream object
set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
'Loop through the files in the folder
For Each objFile in objFolder.Files
'Open the stream
objStream.Open
objStream.LoadFromFile objFile.Path
'Only process if its an MP3 file
if (Ucase(Right(objFile.Name, Len(objFile.Name) - _
InStrRev(objFile.Name, "."))) = Ucase("mp3")) then
'Read the last 128 bytes
objStream.Position = objStream.size - 128
'Read the ID3 v1 tag info
strTag = ConvertBin(objStream.Read(3))
if ucase(strTag) = "TAG" then
strSongName = ConvertBin(objStream.Read(30))
strArtist = ConvertBin(objStream.Read(30))
strAlbum = ConvertBin(objStream.Read(30))
strYear = ConvertBin(objStream.Read(4))
strComment = ConvertBin(objStream.Read(30))
end if
'Display the results
response.write "