Brettb.Com
  HOME | ABOUT ME | BIOTECHNOLOGY | ARTICLES | GALLERY | CONTACT
Search: Go
TECHNICAL ARTICLES
 ASP
 ASP.NET
 JavaScript
 Transact SQL
 Other Articles
 Software Reviews

PHOTO GALLERIES
 Canon EOS 300D Samples
 Akihabara Maids!
 More Galleries...

TRAVEL LOG
 2009: China
 2008: Tokyo
 2007: Tokyo
 2006: Hong Kong
 2005: New York City

MORE STUFF
 Search Engine Optimisation
 Build an ASP Search Engine
 My Tropical Fishtank
 Autoglass
 SQL Month Name
 SQL Get Date Today
 SQL Year Month
 Other New Stuff...

POPULAR STUFF
 Regular Expressions
 Index Server & ASP
 JavaScript Ad Rotator

Home > Articles

A VBScript Random Image Selector for use with ASP

Here is a small function that allows random images to be displayed on an ASP document. Although this is an easy task to achieve in ASP, or even using client-side JavaScript, the VBScript function shown here has the advantage of not needing to know the number of images within the folder – it will take account of images being to added or removed from the images folder. An example random image is shown below. Refresh this page to see another:

A randomly selected image

The RandomImage function is shown below:

<%
Function RandomImage(ImagesFolderPath, ImageFileTypes, ImageDescription)

'Declare variables
Dim CompleteImagesFolderPath
Dim FileSystemObject
Dim ImageFolder
Dim Files
Dim i
Dim ImageFiles
Dim File
Dim FileName
Dim FileExtension
Dim RandomNumber

'Find the complete path to image folder by using Server.MapPath
CompleteImagesFolderPath = Server.MapPath(ImagesFolderPath)

'Create an instance of the FileSystemObject which allows ASP to
'access the file system
 
Set FileSystemObject = Server.CreateObject("Scripting.FileSystemObject")

'Check that the folder containing the images exists
If Not FileSystemObject.FolderExists(CompleteImagesFolderPath) Then
RandomImage = "
Error 0: Cannot find requested folder"
Set FileSystemObject = nothing
Exit Function
End If

'Get the folder containing the images
Set ImageFolder = FileSystemObject.GetFolder(CompleteImagesFolderPath)

'Get a list of all the files within the images folder
Set Files = ImageFolder.Files

'Use a dictionary object to temporarily store the image file names
i = 1
Set ImageFiles = Server.CreateObject("Scripting.Dictionary")

'Loop through the list of files within the images folder.
'If the file has a file extension that is in the list of
'file types specified in the ImageFileTypes function parameter,
'then add the file name to the ImageFiles dictionary object

For Each File in Files

FileName = File.Name
FileExtension = Right(FileName, Len(FileName) - (InStrRev(FileName, ".")))

If InStr(1,ImageFileTypes,FileExtension,vbTextCompare) > 0 then
ImageFiles.Add i, FileName
i = i + 1
End If

Next

'Destroy objects that are no longer required
Set ImageFolder = nothing
Set Files = nothing
Set FileSystemObject = nothing

'Initialise the random number generator
Randomize

' Check that image file(s) have been found
If ImageFiles.Count = 0 Then
RandomImage = "
Error 1: Requested folder does not contain any image files"
Exit Function
End If

'Generate a random number between 1 and the number of image files
RandomNumber = Int((ImageFiles.Count) * Rnd + 1)

'Return a hyperlink to a random image file
RandomImage = "<img src=" & Chr(34) & ImagesFolderPath & ImageFiles.Item(RandomNumber) & Chr(34) & " alt=" & Chr(34) & ImageDescription & Chr(34) & ">"

Set ImageFiles = nothing

End Function
%>


The function uses the FileSystemObject object to access the file system. It checks that the specified image folder exists, and then extracts a list of files within the folder. A link to one of the images (chosen at random) is then returned.

There is a certain amount of error checking within the script; it will return an error message if it cannot find the images folder, and also if it cannot find any appropriate image files.

The function can be called using the following VBScript:

<%Response.Write RandomImage("images/", "gif jpeg", "My Image")%>

The function has three arguments. The first (ImagesFolderPath) is the name of the folder containing the images, and it should be a sub-folder of the folder that contains the ASP document. The second argument should be a string containing a list of file types to use as images (e.g. jpeg, jpg, gif). Finally, the last argument is a short sentence to describe your image (which is used as the image’s ALT tag).

Further Reading

  Site Map | Privacy Policy

All content is 1995 - 2012