<%@ Language=VBScript %> <% ' Always display the navigation path? Const bShowPath = True 'False ' Always display the root directory? Const bShowRoot = False 'True ' Page font tag Const sFont = "" ' Column header font tag Const sColFont = "" ' Column header color Const TblHeader = "#BFBFBF" 'Grey ' Directory grid alternating colors Const FileRow1 = "#b6cbeb" 'Dark Blue Const FileRow2 = "#cadfff" 'Light Blue Const FolderRow1 = "#879966" 'Dark Green Const FolderRow2 = "#c5e095" 'Light Green ' Some nice color pairs '#91619b 'Dark Purple '#be9cc5 'Light Purple '#b6cbeb 'Dark Blue '#cadfff 'Light Blue '#879966 'Dark Green '#c5e095 'Light Green '#a7342a 'Dark Red '#df867f 'Light Red '#f8bc03 'Dark Yellow '#f8e094 'Light Yellow ' ***** Begin Script Dim sError On Error Resume Next sDirectory = Trim(sDirectory) If Right(sDirectory,1) <> "/" Then sDirectory = sDirectory & "/" ' ***** Get subfolder from passed querystring sDir = sDirectory & Request.QueryString("dir") sDir = Trim(sDir) If Right(sDir,1) <> "/" Then sDir = sDir & "/" ' ***** Important! Make sure the subfolder path is in the shared folder. This keeps ' users from browsing directories outside of the shared. ie: dir=../ ' You may want to include some logging code if this happens, here we just ' put the user back into the default directory. sFolder = Server.MapPath( sDir ) sDirFolder = Server.MapPath( sDirectory ) sSubFolder = Right(sDir,Len(sDir)-Len(sDirectory)) If InStr( sFolder , sDirFolder ) = 0 Then sFolder = sDirFolder sSubFolder = "" sError = sError & " Path not authorized;" End If ' ***** Load the file system and navigate to our shared folder. Set objFileObject = Server.CreateObject("Scripting.FileSystemObject") Set objFolder = objFileObject.GetFolder( sFolder ) ' ***** Oops, missing or misspelled folder path. If IsEmpty( objFolder ) Then sFolder = sDirFolder sSubFolder = "" sDir = sDirectory Set objFolder = objFileObject.GetFolder( sFolder ) sError = sError & " Folder not found;" End If %>
Welcome To my file archive:

<% ' ***** Feel free to edit the above table tag ' ***** Build path navigation aNames = Split( sSubFolder , "/") If bShowPath Then If UBound( aNames ) > 0 Or bShowRoot Then %> <% End If For count = 0 To UBound( aNames ) -2 aDirUp = aDirUp & aNames(count) & "/" Next %> <% ' ***** Iterate through the subfolders in our shared folder. For Each objFile In objFolder.SubFolders ' ***** Alternate between these two row colors. If iAlternate = 0 Then Response.Write "" iAlternate = 1 Else Response.Write "" iAlternate = 0 End If ' ***** Display folder with link to navigate %> <% ' ***** Next Folder Next ' ***** Iterate through the files in our shared folder / subfolder. For Each objFile In objFolder.Files sFileName = objFile.name ' ***** Only continue if it's a valid extension If ( IsValidFile (sFileName) ) Then ' ***** Alternate between these two row colors. ' We'll use the same counter variable to continue alternating between ' the light / dark shade according to the previous folder row color. If iAlternate = 0 Then Response.Write "" iAlternate = 1 Else Response.Write "" iAlternate = 0 End If ' ***** Display file with link to execute / dowload. %> <% End If ' ***** Next File Next ' ***** Clean up those nasty memory leaks Set objFileObject = Nothing Set objFolder = Nothing ' ***** Iterate through and approve extensions Function IsValidFile(FileName) If Not AllowExt <> "" Or LCase( AllowExt ) = "all" Then IsValidFile = True Else aAllowExt = Split( AllowExt & "," , ",") IsValidFile = False For iCnt = 0 To UBound( aAllowExt ) -1 If Right( FileName , Len( FileName ) - InStrRev( FileName , "." ) ) = Trim(aAllowExt( iCnt )) Then IsValidFile = True Next End If If DenyExt <> "" Then aDenyExt = Split( DenyExt & "," , ",") For iCnt = 0 To UBound( aDenyExt ) -1 If Right( FileName , Len( FileName ) - InStrRev( FileName , "." ) ) = Trim(aDenyExt( iCnt )) Then IsValidFile = False Next End If End Function ' ***** Display friendly byte size Function ByteConversion(NumberOfBytes) If NumberOfBytes < 1024 Then sDisplayBytes = NumberOfBytes & " Bytes" End If If NumberOfBytes >= 1024 Then sDisplayBytes = FormatNumber( NumberOfBytes / 1024, 2) & " KB" End If If NumberOfBytes > 1048576 Then sDisplayBytes = FormatNumber( NumberOfBytes / 1048576, 2) & " MB" End If Response.Write sDisplayBytes End Function ' ***** Did we encounter an Error? If Err <> 0 Or sError <> "" Then Response.Write "" End If %>
<%= sFont %> <%= sFont %> "><%= Left(sDirectory,len(sDirectory)-1) %> <% End If For count = 0 To UBound( aNames ) -1 aURL = aURL & aNames(count) & "/" %> <%= sChevron %> ?dir=<%= Server.URLEncode( aURL ) %>"><%= aNames(count) %><% Next %>
?dir=<%= Server.URLEncode( aDirUp ) %>"> <%= sColFont %> Filename: <%= sColFont %> Size: <%= sColFont %> File Type: <%= sColFont %> Date created:
0 <%= sFont %> ?dir=<%= Server.URLEncode( sSubFolder & objFile.Name )%>"><%= objFile.Name %> <%= sFont %> <%= ByteConversion( objFile.Size ) %> <%= sFont %> <%= objFile.Type %> <%= sFont %> <%= objFile.DateCreated %>
< <%= sFont %> <%= sFileName %> <%= sFont %> <%= ByteConversion( objFile.Size ) %> <%= sFont %> <%= objFile.Type %> <%= sFont %> <%= objFile.DateCreated %>
ERROR: " & sError & Space(1) & "ASP: " & Err.description & ";