HEj!
Behöver verkligen hjälp.---!!!!
Hej jag skulle vilja att detta sciptet även slumpar i från mappen under mappar också...!!!
Denna kod slumpar från en mapp:
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = FSO.GetFolder(Server.MapPath("bilder"))
If Mapp.Files.Count = 0 Then
Response.Write "Inga bilder inlagda än!"
Else
For Each File In Mapp.Files
If right( File.Name, 3 ) = "jpg" then
strImage = strImage & File.Name &";"
end if
Next
arrImages = Split(strImage, ";")
End If
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
Response.Write "<a href=""default.asp?page=2""><img src=""bilder/"& arrImages(rndNumber) &""" width=""680"" height=""510""></a>"
End If
%>
Men jag vill att den ska slumpa även från dess undermappar...
Hur gör man det???
Har försökt men får inte rätt på det!
Function GetSubFolders(pfolder)
Dim sFolders, fldr, file, MyPath
For Each fldr In pfolder.SubFolders
sFolders = sFolders & GetSubFolders(fldr)
Next
For Each file In pfolder.Files
MyPath = Right(file.path, len(file.path) - len(rootname))
If Right(file.Name, 3) = "jpg" Then sFolders = sFolders & MyPath & file.name & ";"
Next
Set img = Nothing : Set fldr = Nothing
GetSubFolders = sFolders
End function
Dim rootname, arrImages
rootname = Server.MapPath("bilder")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = FSO.GetFolder(rootname)
arrImages = Split(GetSubFolders(Mapp), ";")
Set Mapp = nothing : Set FSO = nothing
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
Response.Write "<a href=""default.asp?page=2""><img src=""bilder/"& arrImages(rndNumber) &""" width=""680"" height=""510""></a>"
End If
Class getRndImg
Private root, FSO, Mapp
Public Property Let rootname(letRoot) 'As String
root = letRoot
End Property
Private Property Get getrootname()
getrootname = root
End Property
Private Sub startFSO()
Dim FSO
root = Server.MapPath(getrootname)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = FSO.GetFolder(root)
End Sub
Private Function GetSubFolders(pfolder) 'As String
Dim sFolders, fldr, file, MyPath
For Each fldr In pfolder.SubFolders
sFolders = sFolders & GetSubFolders(fldr)
Next
For Each file In pfolder.Files
MyPath = Right(file.path, len(file.path) - len(root))
If Right(file.Name, 3) = "jpg" Then sFolders = sFolders & MyPath & ";"
Next
Set file = Nothing : Set fldr = Nothing
GetSubFolders = sFolders
End function
Public Function image() 'As String
Dim arrImages, rndNumber
startFSO
arrImages = Split(GetSubFolders(Mapp), ";")
Set Mapp = nothing : Set FSO = nothing
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
image = arrImages(rndNumber)
Else
image = "ingen_bild.jpg"
End if
End Function
End Class
Dim i, img
Set i = New getRndImg
i.rootname = "bilder"
img = i.image
Set i = Nothing
Response.Write "<a href=""default.asp?page=2""><img src=""bilder/"& img &""" width=""680"" height=""510""></a>"
En snabb titt säger mig att det finns en variabel som heter pfolder, prova den.
Annars är det väl endast att skriva ut de varibler man tror, och se vad de innehåller på olika ställen.
266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e