Avatar billede plato Juniormester
14. maj 2006 - 00:41 Der er 14 kommentarer og
1 løsning

Hjælp til ASP galleri

Hejsa NG.

Jeg har efterhånden et stort galleri som ligger i en mappe gallery hvor der også er undermapper.

Undermapperne har en titel som er passende og som jeg gerne vil have listet, evt med mulighed for at sortere efter alfabetet.

Mapperne hedder f.eks

13_Going_On_30
Alien_Vs_Predator
Kingdom_Of_Heaven

osv

Nu er det jeg godt kunne tænke mig (og jeg har søgt som gal herinde) at liste mapperne uden _ hvorefter man kan klikke på titlen og få en thumbnail oversigt af billederne. Thumb-billederne hedder f.eks tn_billede1.jpg og det store billede hedder billede1.jpg, begge i samme mappe. Thumbnail billederne skal listes 4 af gangen i rækken.

Jeg ved der skal benyttes FSO, men ikke hvordan jeg laver det. Dog ved jeg dette muligvis skal indsættes for at det virker:
<%
set fs = server.createobject("scripting.fileSystemObject")
if fs.FileExists(FilePath) then
  set f = fs.openTextFile(FilePath, 1, False) 
  strFileContent = f.readall 
  set f = nothing 
end if
set fs = nothing
Response.Write (strFileContent)
%>

Nogen der kan hjælpe mig. Foruden point kan der evt. tilbydes DVD'er. (Ved ikke om jeg må det?!)
Avatar billede no_doubt Nybegynder
14. maj 2006 - 01:18 #1
msn: mark.mikkelsen@mail.dk
Avatar billede tofte Juniormester
14. maj 2006 - 01:50 #2
Meget simpel kode som kan tilpasses. Scriptet skal bare placeres i en mappe, hvor mapperne med billeder ligger. Denne udgave sorterer ikke mappenavnene:
<html>
<body>
<%
set fs = server.createobject("scripting.fileSystemObject")
set folder = fs.GetFolder(server.MapPath("."))
set subfolders = folder.SubFolders

'show the folders
for each f in subfolders%>
    <a href="<%=request.ServerVariables("SCRIPT_NAME")%>?folder=<%=f.Name%>"><%=f.Name%></a><br>
<%
next

set folder = nothing
set subfolders = nothing

'show the pics

if len(request.QueryString("folder"))>1 then
    fol = request.QueryString("folder")
    count = 0
    set fs = server.createobject("scripting.fileSystemObject")
    set folder = fs.GetFolder(server.MapPath("./"&request.QueryString("folder")))
    set files = folder.Files
    for each f in files
        if left(f.Name,3)="tn_" then
            thumbname="./"&fol&"/"&f.Name
            imgname="./"&fol&"/"&right(f.Name,len(f.Name)-3)
            count=count+1%>
                <a href="<%=imgname%>"><img src="<%=thumbname%>"/ height="10" width="10"></a>
       
            <%
            ' counts 4 pics and add an ekstra line.
            if count = 4 then
                response.Write "<br>"
            end if
        end if
   
    next   
   
end if
%>
</body>
</html>
Avatar billede tofte Juniormester
14. maj 2006 - 02:02 #3
Og med sortering ser det sådan ud:
<html>
<body>
<%
set fs = server.createobject("scripting.fileSystemObject")
set folder = fs.GetFolder(server.MapPath("."))
set subfolders = folder.SubFolders

    folderCount = subfolders.count
    dim fNames()
    redim fNames(folderCount)
    cFcount = 0
    for each f in subfolders
        cFcount = cFcount + 1
        fNames(cFcount) = lcase(f.name)
    next
    for tName = 1 to fileCount
        for nName = (tName + 1) to folderCount
            if strComp(fNames(tName),fNames(nName),0)=1 then
                buffer = fNames(nName)
                fNames(nName) = fNames(tName)
                fNames(tName) = buffer
            end if
        next
    next
    for i = 1 to folderCount%>
        <a href="<%=request.ServerVariables("SCRIPT_NAME")%>?folder=<%=fNames(i)%>"><%=fNames(i)%></a><br>
    <%
    next

set folder = nothing
set subfolders = nothing

'show the pics

if len(request.QueryString("folder"))>1 then
    fol = request.QueryString("folder")
    count = 0
    set fs = server.createobject("scripting.fileSystemObject")
    set folder = fs.GetFolder(server.MapPath("./"&request.QueryString("folder")))
    set files = folder.Files
    for each f in files
        if left(f.Name,3)="tn_" then
            thumbname="./"&fol&"/"&f.Name
            imgname="./"&fol&"/"&right(f.Name,len(f.Name)-3)
            count=count+1%>
                <a href="<%=imgname%>"><img src="<%=thumbname%>"/ height="10" width="10"></a>
       
            <%
            ' counts 4 pics and add an ekstra line.
            if count = 4 then
                response.Write "<br>"
            end if
        end if
   
    next   
   
end if
%>
</body>
</html>
Avatar billede kiddoe Nybegynder
14. maj 2006 - 05:55 #4
Det laver links over mapperne men der sker ikke noget når man klikker ??
Avatar billede tofte Juniormester
14. maj 2006 - 11:05 #5
det skulle der gerne, det er vigtigt, at der ligger thumbnailbilleder hvor navnet starter med tn_ ellers vises de ikke.
Avatar billede plato Juniormester
14. maj 2006 - 12:36 #6
tofte.

Den virker som sådan til at starte med. Den lister mapperne i mappen Gallery. Dog som det første laver den forbokstavet som til lille. Det skal den helste ikke. Når man klikker på en mappe f.eks 13 Going On 30, hvor både de store billeder og tn_billeder ligger sker der intet. Den ændrer dog adresse i adresselinien til http://www.filmnet.dk/gallery/testgalleri.asp?folder=13_going_on_30

Du kan teste det her: http://www.filmnet.dk/gallery/testgalleri.asp
Avatar billede tofte Juniormester
14. maj 2006 - 12:58 #7
Jeg kan ikke forstå hvad du mener med punkt to. Billederne vises fint i bunden når man eks klikker på "13 Going on 30"

Probleme med forbogstavet er løst her:
<html>
<body>
<%
set fs = server.createobject("scripting.fileSystemObject")
set folder = fs.GetFolder(server.MapPath("."))
set subfolders = folder.SubFolders

    folderCount = subfolders.count
    dim fNames()
    redim fNames(folderCount)
    cFcount = 0
    for each f in subfolders
        cFcount = cFcount + 1
        fNames(cFcount) = f.name
    next
    for tName = 1 to fileCount
        for nName = (tName + 1) to folderCount
            if strComp(lcase(fNames(tName)),lcase(fNames(nName)),0)=1 then
                buffer = fNames(nName)
                fNames(nName) = fNames(tName)
                fNames(tName) = buffer
            end if
        next
    next
    for i = 1 to folderCount%>
        <a href="<%=request.ServerVariables("SCRIPT_NAME")%>?folder=<%=fNames(i)%>"><%=fNames(i)%></a><br>
    <%
    next

set folder = nothing
set subfolders = nothing

'show the pics

if len(request.QueryString("folder"))>1 then
    fol = request.QueryString("folder")
    count = 0
    set fs = server.createobject("scripting.fileSystemObject")
    set folder = fs.GetFolder(server.MapPath("./"&request.QueryString("folder")))
    set files = folder.Files
    for each f in files
        if left(f.Name,3)="tn_" then
            thumbname="./"&fol&"/"&f.Name
            imgname="./"&fol&"/"&right(f.Name,len(f.Name)-3)
            count=count+1%>
                <a href="<%=imgname%>"><img src="<%=thumbname%>"/ height="10" width="10"></a>
       
            <%
            ' counts 4 pics and add an ekstra line.
            if count = 4 then
                response.Write "<br>"
            end if
        end if
   
    next   
   
end if
%>
</body>
</html>
Avatar billede plato Juniormester
14. maj 2006 - 13:07 #8
tofte.

Ahh, havde ikke lige scrollet ned i bunden. Nu er det ikke for at være besværlig, men kan dette laves om sådan, at når man klikker på en mappe så lister den thumbnails uden at mapperne igen står der?
Avatar billede plato Juniormester
14. maj 2006 - 13:08 #9
Ellers virker det sgu godt :)
Avatar billede plato Juniormester
14. maj 2006 - 13:20 #10
Tofte.

Skidt pyt. Det har jeg løst med en mode-funktion. :)

Tak for din store hjælp!! Smid et svar og send mig en mail på rasmusriis@stofanet.dk
Avatar billede plato Juniormester
14. maj 2006 - 13:21 #11
Doooh, der er jo et svar. :)
Avatar billede plato Juniormester
14. maj 2006 - 13:34 #12
Tofte..

Den går forresten galt her:
http://www.filmnet.dk/gallery/testgalleri.asp?mode=gallery_show&folder=The_SpongeBob_SquarePants_Movie

Det er kun de første 4 billeder der forbliver alene, derefter lister den bare billederne som den lyster?
Avatar billede tofte Juniormester
14. maj 2006 - 13:49 #13
hmm, det er min fejl. Man skal lige nulstille counteren. Så tilføj en count=0 efter
response.Write "<br>"
Avatar billede tofte Juniormester
14. maj 2006 - 13:49 #14
og tak for points.
Avatar billede plato Juniormester
14. maj 2006 - 13:53 #15
Fornemt. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester