Avatar billede Slettet bruger
06. november 2006 - 18:01 Der er 75 kommentarer og
1 løsning

Automatisk billedgalleri, men med forrige og næste billed?

Hej.


Jeg har lavet et automatisk billedgalleri, som selv finder billeder og mapper i en defineret mappe.

Problemet er bare, at jeg ikke kan komme frem til en løsning på hvordan jeg, når man er inde på et billed, kan sige Næste billed og Forrige billed.

Samtidigt kan jeg heller ikke gå ind under mere end 1 undermappe.
Er dette noget i kan hjælpe med?

I må MEGET gerne komme med konstruktive ændringer eller tips til hvordan jeg kan forbedre mit script.

Koden:

<%

' settings: [begin]

' define the contact mail
contactmail = "kontakt@fredagsbaren.dk"

' define the filename of this file, or write the path to this file
standardFileName = "default.asp?page=galleri&"

' name of the maingallery folder
standardFolder = "gallerier"

' define full picturesizes
pictureWidth = "500px"
pictureHeight = "375px"

' define thumbnail picturesizes
thumbnailWidth = "100px"
thumbnailHeight = "100px"

' define the gallery width
galleryWidth = "549px"

' define the picture border
pictureBorder = "solid"
pictureBorderWidth = "1px"
pictureBorderColor = "#000000"

' settings: [end]


' script: [begin]

set fs = Server.CreateObject("Scripting.FileSystemObject")
folder = request.querystring("folder")
picture = request.querystring("picture")
error = request.querystring("error")
if not folder = "" then
  pictureFolderName = ""&standardFolder&"/"&folder&""
else
  pictureFolderName = standardFolder
end if
if not picture = "" then
  if fs.FileExists(server.mappath(".")&"/"&picture&"")=false then
    response.redirect(""&standardFileName&"error=picture")
  end if
end if
if not folder = "" then
  if fs.FolderExists(server.mappath(".")&"/"&standardFolder&"/"&folder&"")=false then
    response.redirect(""&standardFileName&"error=folder")
  end if
end if
set viewLocation = fs.GetFolder(server.mappath(".")&"/"&pictureFolderName&"")
amountOfPictures = 0
for each file in viewLocation.files
  if fs.GetExtensionName(lcase(file)) = "jpg" then
    amountOfPictures = amountOfPictures+1
  end if
next

if error = "folder" then
  response.write("<center><a href='java script:history.back(1);'>Tilbage</a><br><br><b>404 Error - File Not Found</b><br><br>Mappen du prøver på at åbne, eksisterer ikke ifølge systemet.<br>Du bedes prøve at tjekke adressen en ekstra gang eller anmode om support.</center>")
elseif error = "picture" then
  response.write("<center><a href='java script:history.back(1);'>Tilbage</a><br><br><b>404 Error - File Not Found</b><br><br>Billedet du prøver på at åbne, eksisterer ikke ifølge systemet.<br>Du bedes prøve at tjekke adressen en ekstra gang eller anmode om support.</center>")
else
  if picture = "" then
    for each folder in viewLocation.subFolders
      response.write("<a href='"&standardFileName&"folder="&folder.name&"'>"&folder.name&"</a><br>")
    next
    if not pictureFolderName = standardFolder then
      response.write("<center><a href='java script:history.back(1);'>Tilbage</a><br></center>")
    end if
    if amountOfPictures = 1 then
      response.write("<center><br>"&amountOfPictures&" billede i mappen<br></center>")
    else
      response.write("<center><br>"&amountOfPictures&" billeder i mappen<br></center>")
    end if
    response.write("<center>")
    for each file in viewLocation.files
      if fs.GetExtensionName(lcase(file)) = "jpg" then
        response.write("<a href='"&standardFileName&"picture="&pictureFolderName&"/"&file.name&"'><img src='"&pictureFolderName&"/"&file.name&"' width='"&thumbnailWidth&"' style='border: "&pictureBorder&" "&pictureBorderWidth&" "&pictureBorderColor&"'></a> ")
      end if
    next
    response.write("<br><br><br>Har vi fanget dig i en uheldig situation? Skriv da til "&contactmail&"<br>husk at skrive billedstien, som kan ses under det pågældende billed!")
    response.write("</center>")
  else
    response.write("<center><a href='java script:history.back(1);'>Tilbage</a><br><br><img src='"&picture&"' width='"&pictureWidth&"' height='"&pictureHeight&"' style='border: "&pictureBorder&" "&pictureBorderWidth&" "&pictureBorderColor&"'><br><b>Billedsti:</b><br><a href='"&picture&"' target='_blank'>"&picture&"<br><i>Klik for at få billedet vist stort</i></a><br><br><br>Har vi fanget dig i en uheldig situation? Skriv da til "&contactmail&"<br>husk at skrive billedstien, som kan ses under det pågældende billed!</center>")
  end if
end if

set fs = nothing

' script: [end]
%>
Avatar billede thesurfer Nybegynder
06. november 2006 - 18:49 #1
Et MEGET godt råd!: Lav thumbnails til dine billeder!

Lige nu loader du billeder i deres fuld størrelse.. dvs, der skal loades 100 - 200 kb per billede!

Prøv lige at klikke på "...se flere billeder" og derefter vælge "01) 18-08-2006 (Intro baren)".. Hvor lang tid tager der lige at få vist 121 billede, i 800x600 med en gennemsnitsstørrelse på 150 kb??

150 kb * 121 billeder = 18150 kb = 18,150 MB! Bare på 1 side..

Nej, det er ikke særligt smart.. :-)

Så mit konstruktive tip:

Lav thumbnails der FAKTISK ER 100x100 pixels!
Begrundelse: At du tager et billede der er 800x600, og viser det i 100x100 vis HTML IMG-tag'et, konverterer ikke billedet til 100x100.

Man skal stadig loade hele billedet, i fuld størrlse..
Avatar billede thesurfer Nybegynder
06. november 2006 - 18:56 #2
Du kan oprette samme struktur, bare med i en anden mappe, og putte dine thumbnails der..

eksempel:

side.dk/billeder/2006-12-31/billede.jpg
side.dk/thumbnails/2006-12-31/billede_thumb.jpg

Så burde du nemt kunne skifte mellem thumbnail og det rigtigt billede, bare ved at skifte mellem "billeder" og "thumbnails"..
Avatar billede nerosdk71 Nybegynder
06. november 2006 - 19:13 #3
Keep it simple. du ser ud til på din code at du er hardcore til at programmere, så prøv dette link:

http://www.csharp-station.com/Articles/Thumbnails.aspx

Det er helt rigtigt at hastigheden på dine billeder bliver for langsom som du gør det, men du skal ikke manuelt lave thumbnails.

Derudover så prøv i MS Visual Web designer Express (eller hvad den heddeR) at installere personal web site på en local webserver. Der er en suveræn albumsfunktion.

Kig på den og "tag ved lære" (det lyder for voldsomt at sige du skal stjæle, for det er jo ulovligt ;-)  ).


Søren
Avatar billede thesurfer Nybegynder
06. november 2006 - 19:16 #4
nerosdk71> Der er forskel på ASP og ASP.Net, hvor man typisk bruger C#.

I stedet kan erizias bruge et program som Irfanview eller andet software, der kan batch-konvertere en masse billeder..

De kan typisk også lave thumbnails..

Hvis de ikke kan det, kan man nemt finde software der kan tage en hel mappe, og lave thumbnails til billederne..
Avatar billede Slettet bruger
06. november 2006 - 20:37 #5
Nu er jeg ik ligefrem hardcore til C# eller diverse programmering kodetyper (udover asp(?))

Er godt klar over det med thumbs, men er bare træt af at skulle sidde og ændre hvert eneste billed til mindre størrelse og bagefter skulle omdøbe til tmp_X.jpg?
Avatar billede Slettet bruger
06. november 2006 - 20:46 #6
Jeg har 1 "kodeprogram" til de store kodesprog der, som er NetBeans.. ved ikke om det kan bruges?
Avatar billede thesurfer Nybegynder
06. november 2006 - 20:48 #7
erizias> Det er det batch-thumbnail-tingest programmerne gør for dig..
Avatar billede Slettet bruger
06. november 2006 - 20:51 #8
thesurfer, hvordan bruger jeg det?:)
Avatar billede thesurfer Nybegynder
06. november 2006 - 20:55 #9
Du skal lige hente et program der kan det.. :-)

Søg på "thumbnail batch" eller ligende på Google..
Avatar billede thesurfer Nybegynder
06. november 2006 - 20:57 #10
Avatar billede thesurfer Nybegynder
06. november 2006 - 20:57 #11
Avatar billede Slettet bruger
06. november 2006 - 21:00 #12
okay tak :D
men tilbage til det reelle problem? Nogen der kan hjælpe der?
Avatar billede hnteknik Novice
06. november 2006 - 23:05 #13
Har du kigget på denne javascript model

http://www.huddletogether.com/projects/lightbox2/

thumbnails kan laves on the fly med aspImage

se f.eks. mit eks. på
http://www.web4it.dk/aspimage/vispic.htm
Avatar billede Slettet bruger
06. november 2006 - 23:31 #14
Vil gerne lave det i ren ASP

og har ikke ASPImage installeret på serveren.
Avatar billede thesurfer Nybegynder
07. november 2006 - 20:45 #15
Du kunne jo indlæse samtligt filnavne via FSO (FileSystemObject), og udskrive dem til en array i noget JavaScript kode..

På den måde undgår du helt at skulle reloade siden.. Men det kræver at JavaScript er aktiveret på brugeren computer..
Avatar billede Slettet bruger
08. november 2006 - 08:20 #16
jeg sad og tænkte på om det ikke var muligt at indlæse alle billederne til sessions, dvs. 1 fil for hver session, så ku man gå frem og tilbage i sessionerne? er det muligt?
Avatar billede thesurfer Nybegynder
08. november 2006 - 09:12 #17
Så er det nok bedre, at bruge 3 sessions:

1: Session("allefiler") = Indeholder alle filnavne
2: Session("billede") = Indeholder navnet på det billede der bliver vist
3: Session("mappe") = Indholder navnet på nuværende mappe

På den måde kan du nemt loope igennem "allefiler", finde "billede", og derefter tage den næste i rækken..

Eksempel:
<%
mappe = "dyr" ' hentes fra session("mappe")
allefiler = "hund.jpg:kat.jpg:fugl.jpg:and.jpg:" ' hentes fra session("allefiler")
billede = "kat.jpg" ' hentes fra session("billede")

if session("mappe") <> [dynamisk sti til "nuværende mappe"] then OpdaterSessions ' denne funktion skal laves
' Funktionen OpdaterSessions:
' - load nuværende filnavne ind i "allefiler"
' - load første billede ind i "billede"
' - load nuværerende mappenavne ind i "mappe"

arr = split(allefiler, ":")

forrige_billede = ""
naeste_billede = ""
for i = 0 to ubound(arr)
    if arr(i) = billede then
        if i + 1 <= ubound(arr) then
        forrige_billede = arr(i)
            naeste_billede = arr(i + 1) ' der er flere billede, så loades den næste i rækken
        else
            forrige_billede = ubound(arr)
            naeste_billede = arr(0) ' det nuværende billede er det sidste billede, load derfor det første billede
        end if
    end if
next


%>

Forrige billede: <%=forrige_billede%>
<br>
Næste billede: <%=naeste_billede%>


* Koden er ikke testet, men giver et generelt billede af hvordan det kan laves
* Man kan slå session("billede") og session("mappe") sammen, for at spare ressourcerne til den sidste session

Hvis man ikke opdaterer sessions, f.eks. via denne linie:

    if session("mappe") <> [dynamisk sti til "nuværende mappe"] then OpdaterSessions ' denne funktion skal laves

vil man komme til at se dyr, lige meget hvilken mappe man vælger..
Avatar billede Slettet bruger
08. november 2006 - 12:59 #18
Puha, nu har jeg ikke lige særlig meget styr på arrays, desværre!
Kan du fortælle hvor det ca skal sættes ind?
Og når du siger dynamisk sti til nuværende mappe, ville det så være server.mappath(".")&"/"&pictureFolderName&" i dette tilfælde? så det altså bliver:

if session("mappe") <> server.mappath(".")&"/"&pictureFolderName&" then OpdaterSessions

sessions("mappe") kan den så ikke laves via querystringen folder=MAPPE?
sessions("billed") kan den så ikke laves via querystringen picture=BILLED?
sessions("allefiler") kan den så ikke laves vha for each file in viewLocation på en eller anden facon?
Avatar billede thesurfer Nybegynder
08. november 2006 - 13:13 #19
Hvis du allerede har mappenavn og billedenavn i urlen, behøver du kun 1 session:

1: Session("allefiler") = Indeholder alle filnavne i nuværende mappe

Nu ved jeg ikke om du vil bruge en HTML løsning eller en JavaScript løsning, til "frem"/"tilbage"..

Jeg vil anbefale en HTML løsning, hvilket vil virke, selvom brugeren deaktiverer JavaScript.

Det betyder så at du skal udskrive linkene til "frem og tilbage", via ASP, hvilket ikke er noget problem.



Hmmm... mens jeg sad og skrev dette indlæg, kom jeg lige i tanke om noget andet..

Hvis du allerede har mappenavn og billedenavn i urlen, er der faktisk ikke nogen grund til at bruge sessions.

Eksempel:

mappe = request.querystring("mappe")
billede = request.querystring("kat.jpg")
allefiler = "hund.jpg:kat.jpg:fugl.jpg:and.jpg:" ' denne her dannes af en loop via FileSystemObject

Så kan du bruge koden fra 08/11-2006 09:12:10

Husk på at "allefiler"-FSO-koden skal bruge "mappe"-værdien.. derfor skal "mappe"-værdien sættes FØR allefiler..
Avatar billede thesurfer Nybegynder
08. november 2006 - 13:15 #20
Husk at få ordnet det med thumbnails.. :-)
Avatar billede Slettet bruger
08. november 2006 - 13:32 #21
Okay, jeg må lige prøve mig lidt frem når jeg kommer hjem om et par timer :)

Er igang med at eksperimentere lidt med det thumbnails også ;)
Avatar billede Slettet bruger
08. november 2006 - 17:33 #22
Okay, her er sket noget nu :)

Jeg har lavet selve koden lidt om, nu kan jeg nemlig gå ind i under-undermappe :)
ThumbNails arbejder jeg stadig på, men det venter jeg lige med til jeg er færdig med det her forrige- og næste billede.

Her er hvad der sker indtil videre:
Hvis jeg trykker på så jeg får næste billed frem (og det er det sidste billede i rækken jeg er inde på), kommer fx følgende url:
http://localhost/public_html/default.asp?page=galleri&folder=gallerier&picture=tn_PICT0076.JPG
Det er også helt fint, MEN, problemet er bare, at den ikke hopper over til det første billed, den bliver bare på samme billede.

Men trykker jeg derimod Forrige billede kommer fx følgende url:
http://localhost/public_html/tn_PICT0076.JPG
Ergo, den glemmer at hoppe ned til forrige billede, og så glemmer den desværre også default.asp?page=galleri&folder=gallerier&picture=

MEN!!!
Hvis jeg er inde på et billed der er i midten af rækken af billeder, og jeg så trykker på næste, så finder den rigtigt nok det næste rigtige billede, men den glemmer også default.asp?page=galleri&folder=gallerier&picture=


Min kode er som følger:
<%

' settings: [begin]

' define the contact mail
contactMail = "kontakt@fredagsbaren.dk"

' define the filename of this file, or write the path to this file
standardFileName = "default.asp?page=galleri&"

' name of the maingallery folder
standardFolder = "gallerier"

' define extensiongrabber
extension = "jpg"

' define full picturesizes
pictureWidth = "500px"
pictureHeight = "375px"

' define thumbnail picturesizes
thumbnailWidth = "100px"
thumbnailHeight = "100px"

' define the gallery width
galleryWidth = "549px"

' define the picture border
pictureBorder = "solid"
pictureBorderWidth = "1px"
pictureBorderColor = "#000000"

' settings: [end]


' script: [begin]

set fs = Server.CreateObject("Scripting.FileSystemObject")
folder = request.querystring("folder")
picture = request.querystring("picture")
error = request.querystring("error")
if not folder = "" then
  pictureFolderName = folder
else
  pictureFolderName = standardFolder
end if
if not picture = "" then
  if fs.FileExists(server.mappath(".")&"/"&folder&"/"&picture)=false then
    response.redirect(""&standardFileName&"error=picture")
  end if
end if
set viewLocation = fs.GetFolder(server.mappath(".")&"/"&pictureFolderName)
amountOfPictures = 0
for each file in viewLocation.files
  if fs.GetExtensionName(lcase(file)) = extension then
    amountOfPictures = amountOfPictures+1
  end if
next

arrfolder = request.querystring("folder")
arrpicture = request.querystring("picture")
arrallfiles = ""
for each file in viewLocation.files
  if fs.GetExtensionName(lcase(file)) = extension then
    arrallfiles = arrallfiles + file.name&":"
  end if
next

arr = split(arrallfiles, ":")

last_picture = ""
next_picture = ""
for i = 0 to ubound(arr)
  if arr(i) = arrpicture then
    if i + 1 <= ubound(arr) then
      last_picture = arr(i)
      next_picture = arr(i + 1) ' der er flere billede, så loades den næste i rækken
    else
      last_picture = ubound(arr)
      next_picture = arr(0) ' det nuværende billede er det sidste billede, load derfor det første billede
    end if
  end if
next

if not error = "" then
  response.write("<center>")
  response.write("<a href='java script:history.back(1);'>Tilbage</a><br><br>")
  response.write("<b>404 Fejl - Fil ikke fundet</b><br><br>")
  response.write("Filen du prøver på at åbne, eksisterer ikke ifølge systemet.<br>Du bedes prøve at tjekke adressen en ekstra gang eller anmode om support.")
  response.write("</center>")
else
  if picture = "" then
    for each folder in viewLocation.subFolders
      response.write("<a href='"&standardFileName&"folder="&pictureFolderName&"/"&folder.name&"'>"&folder.name&"</a><br>")
    next
    if not pictureFolderName = standardFolder then
      response.write("<center><a href='java script:history.back(1);'>Tilbage</a><br></center>")
    end if
    if amountOfPictures = 1 then
      response.write("<center><br>"&amountOfPictures&" billede i mappen<br></center>")
    else
      response.write("<center><br>"&amountOfPictures&" billeder i mappen<br></center>")
    end if
    response.write("<center>")
    for each file in viewLocation.files
      if fs.GetExtensionName(lcase(file)) = extension then
        response.write("<a href='"&standardFileName&"folder="&pictureFolderName&"&picture="&file.name&"'><img src='"&pictureFolderName&"/"&file.name&"' width='"&thumbnailWidth&"' style='border: "&pictureBorder&" "&pictureBorderWidth&" "&pictureBorderColor&"'></a> ")
       
      end if
    next
    response.write("<br><br><br>Har vi fanget dig i en uheldig situation? Skriv da til "&contactMail&"<br>husk at skrive billedstien, som kan ses under det pågældende billed!")
    response.write("</center>")
  else
    response.write("<center>")
    response.write("<a href='"&last_picture&"'>Forrige</a>&nbsp;&nbsp; &nbsp;&nbsp;<a href='java script:history.back(1);'>Tilbage</a>&nbsp;&nbsp; &nbsp;&nbsp;<a href='"&next_picture&"'>Næste</a><br>")
    response.write("<img src='"&folder&"/"&picture&"' width='"&pictureWidth&"' height='"&pictureHeight&"' style='border: "&pictureBorder&" "&pictureBorderWidth&" "&pictureBorderColor&"'><br>")
    response.write("<b>Billede:</b><br><a href='"&folder&"/"&picture&"' target='_blank'>"&picture&"<br><i>Klik for at få billedet vist stort</i></a><br><br><br>")
    response.write("Har vi fanget dig i en uheldig situation? Skriv da til "&contactMail&"<br>husk at skrive billedstien, som kan ses under det pågældende billed!")
    response.write("</center>")
  end if
end if

set fs = nothing

' script: [end]
%>
Avatar billede Slettet bruger
08. november 2006 - 18:07 #23
Okay, jeg fik faktisk fixet Næste funktionen nu
Ved at ændre array koden til følgende:

last_picture = ""
next_picture = ""
for i = 0 to ubound(arr)
  if arr(i) = arrpicture then
    if i + 1 < ubound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i + 1)
    else
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&ubound(arr)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
    end if
  end if
next

Nu er problemet bare med Forrige, for der siger den bare 4 (tror den bare tæller billederne)
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:33 #24
Hvor siger den bare 4?
Avatar billede Slettet bruger
08. november 2006 - 18:41 #25
Jeg har fundet ud af at lave forrige og næste knappen ved at sige

last_picture = ""
next_picture = ""
for i = 1 to ubound(arr)
  if arr(i) = arrpicture then
    if i + 1 < ubound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i + 1)
    else
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
    end if
  end if
next

Men ved billede nummer 1, der står den bare stille, hvis jeg trykker på forrige eller næste, tager den bare samme billede...
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:42 #26
Din FOR-NEXT løkke skal da start ved 0?: for i = 1 to ubound(arr)
Avatar billede Slettet bruger
08. november 2006 - 18:47 #27
Nu virker det hele ved at jeg siger:

last_picture = ""
next_picture = ""
for i = 0 to ubound(arr)
  if arr(i) = arrpicture then
    if i = lbound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&ubound(arr)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(1)     
    elseif i + 1 < ubound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i + 1)
    else
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
    end if
  end if
next

Men ved billede nummer 1, og den skal gå tilbage til det sidste billede i rækken, altså &ubound(arr), så skriver den bare picture=4
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:48 #28
Sådan:

      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(ubound(arr))

Det skal være "arr(ubound(arr))" i stedet for "ubound(arr)"..
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:49 #29
Altså:
    if i = lbound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(ubound(arr))
Avatar billede Slettet bruger
08. november 2006 - 18:49 #30
Så siger den ingenting.. altså picture=
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:50 #31
Hvis den skriver ingenting ved "arr(ubound(arr))", prøv med "arr(ubound(arr) -1)"
Avatar billede Slettet bruger
08. november 2006 - 18:51 #32
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'ubound'
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:51 #33
Så skal den konverteres til en integer (heltal) først: arr( CInt(ubound(arr)) - 1)
Avatar billede Slettet bruger
08. november 2006 - 18:54 #34
det virker! hvor det vildt :D
shit man hvor godt :) nu har jeg bare 1 lille problem mere ;)
Jeg havde jo en tilbageknap som sagde javatilbage noget, men den ka jo ik rigtig bruges mere, derfor har jeg lavet en som siger at den ska gå tilbage til folder=x, men hvis jeg er inde i en under-undermappe, så kan jeg ikke gå tilbage til undermappen (altså bare springe 1 mappe ned)
Avatar billede thesurfer Nybegynder
08. november 2006 - 18:57 #35
"altså bare springe 1 mappe ned"? Du mener op?

Dvs:
hovedmappe/undermappe_nr_1/undermappe_nr_2/undermappe_nr_3
---> klik "tilbage"

Brugeren er nu i:
hovedmappe/undermappe_nr_1/undermappe_nr_2/

Eller wa?
Avatar billede Slettet bruger
08. november 2006 - 19:01 #36
jaa præcis..
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:04 #37
Snup querystring og split den ved "/".. :-)

Så siger du:

<%
dele = split(request.querystring("folder"), "/")

for i = 0 to ubound(dele) - 1
  tmp = tmp & dele(i) & "/"
next

%>

<a href="<%=tmp%>">Gå til <%=tmp%></a>

Det er ikke testet.. men ser nogenlunde fint ud.. :-)
Avatar billede Slettet bruger
08. november 2006 - 19:05 #38
hvorfor bruger man egentligt altid i? går den anden i indover den nye i? eller bliver den i den anden for?
Avatar billede Slettet bruger
08. november 2006 - 19:07 #39
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'dele'

skal den så laves om til int igen?
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:09 #40
Jeg tror at det er fordi "incrementer"/"incrementor" (betyder noget i stil med "optæller" starer med "i".. :-)

Jeg ved faktisk ikke hvorfor.. men rækkefølgen er typisk:

i, j, k (mon ikke at det fortsætter...?)

Så vidt jeg ved, erstattes "i" hver gang man starter en ny løkke..

Dvs, det her er en meget dårlig ide!:

for i = 0 to 10
  for i = 1 to 5
  ' noget her
  next
next

Da skal det se sådan ud:

for i = 0 to 10
  for j = 1 to 5
  ' noget her
  next
next

Der bruges både "i" og "j"..

"skal" og "skal".. :-)
Avatar billede Slettet bruger
08. november 2006 - 19:09 #41
foldersplit = split(request.querystring("folder"), "/")

for i = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = standardFileName&"folder="&foldersplittet & foldersplit(i)
next

virker :)!
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:11 #42
Hmmm...

Jeg undrer mig over, at man skal konvertere ubound(array-navn) til en integer først..

Jeg mener at jeg plejer at gøre det uden at konvertere..

Men hvis en konvertering kan gøre den så, så by all means.. :-)
Avatar billede Slettet bruger
08. november 2006 - 19:11 #43
der er lige 1 ting, hvis jeg kun har 1 billed i mappen, så går den tilbage til oversigten når jeg trykker næste, fordi den laver picture=
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:12 #44
Se selv her:

    For i = 1 to uBound(pathArr) - 1 'Offset page Name
        'Loop thru path and return current directory only
        GetThisPath = pathArr(i)
    Next

Kilde: http://www.asp101.com/articles/jason/yahoonavbar/default.asp
(lidt nede på siden.. i boksen med kode)
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:13 #45
Pseudo-kode:

if request.querystring("picture") = "" then
  if der-er-billeder-mappen then billede = første-billede
end if

:-)
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:13 #46
Ellers skal den ikke arbejde med FSO og ligende, da der jo ikke er billeder..
Avatar billede Slettet bruger
08. november 2006 - 19:13 #47
ja okay :), hvad fanden.. det virkede :)
Avatar billede Slettet bruger
08. november 2006 - 19:14 #48
der er 1 billede... den burde bare stadig kunne gå til det samme billede igen, selvom den så faktisk bare går i ring...
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:14 #49
Jeg tror at vi er nået så langt, at jeg kan tillade mig at smide et svar.. :-)
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:15 #50
Ja, det burde det..

Fejlen må ligge her:

last_picture = ""
next_picture = ""
for i = 0 to ubound(arr)
  if arr(i) = arrpicture then
    if i = lbound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&ubound(arr)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(1)     
    elseif i + 1 < ubound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i + 1)
    else
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
    end if
  end if
next

Kigger på det..
Avatar billede Slettet bruger
08. november 2006 - 19:16 #51
hehe jeg burde give dig endnu flere points :P du har hjulet mig helt vildt meget, og nu har jeg lært at lave lidt arrays også :)
Avatar billede Slettet bruger
08. november 2006 - 19:17 #52
det er vel fordi at den faktisk tager
    if i = lbound(arr) then
      last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(CInt(ubound(arr)) - 1)
      next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(i + 1)
men så ikke kan lave i + 1 fordi der ikke er flere?
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:18 #53
Hvis du gennemgår og forstår http://www.html.dk/tutorials/asp/ , så er du i stand til at løse en masse problemer, og lave en masse herlige ting.. :-)
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:20 #54
Du kunne jo lave det sådan:

last_picture = ""
next_picture = ""
for...
...
next

if lbound(arr) = ubound(arr) then
' sæt både last_picture og next_picture til samme picture
end if

:-)
Avatar billede Slettet bruger
08. november 2006 - 19:23 #55
så skal det være
if lbound(arr) + 1 = ubound(arr) then
  next_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
  last_picture = standardFileName&"folder="&arrfolder&"&picture="&arr(0)
end if

for mit array slutter jo også med :
derfor den siger ingenting!!:D
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:24 #56
Jeg glemmer altid et eller andet.. :-)

Takker for points.. :-)
Avatar billede Slettet bruger
08. november 2006 - 19:24 #57
det virker fint,
så lige 1 ting, hvis jeg er inde i en mappe hvor den så siger folder=mappe/mappe/mappe

og bruger

foldersplit = split(request.querystring("folder"), "/")

for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = standardFileName&"folder="&foldersplittet & foldersplit(j)
next

så siger den bagefter folder=mappemappe

:(
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:25 #58
Du mangler: & "/"
Avatar billede Slettet bruger
08. november 2006 - 19:27 #59
jeg takker og bukker for ALT :)
det har været som at være i skole med den bedste lære ;) hehe
takker!
Avatar billede thesurfer Nybegynder
08. november 2006 - 19:29 #60
You welcome..

Det er rart med en elev, der selv tør at prøve ting, og endda lykkes at gøre tingene rigtigt.. :-)

Det var så lidt.. :-)
Avatar billede Slettet bruger
08. november 2006 - 20:10 #61
Ved ikke om du stadig er her, men fandt lige en fejl :s

for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = standardFileName&"folder="&foldersplittet & foldersplit(j) & "/"
next

Hvis jeg er inde i 2 undermapper, så laver den dobbelt standardFileName&"folder="& hvilket også er logisk nok, hvordan fjerner jeg det?
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:15 #62
standardFileName & "folder="
for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = foldersplittet & foldersplit(j) & "/"
next
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:16 #63
Doh! :-)

foldersplittet = standardFileName&"folder="
for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = foldersplittet & foldersplit(j) & "/"
next
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:17 #64
Husk at lave mellem rum ved "&"-tegn, så det bliver mere overskueligt:

foldersplittet = standardFileName & "folder="
for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = foldersplittet & foldersplit(j) & "/"
next

Og andre steder hvor du bruger "&"..
Avatar billede Slettet bruger
08. november 2006 - 20:30 #65
hovedmappe/
hovedmappe/undermappe1/
hovedmappe/undermappe1/undermappe2/
hovedmappe/undermappe1/
hovedmappe/undermappe1/
hovedmappe/undermappe1/

det er sådan den udvikler sig :D den siger bare det samme 2. gang man går tilbage..
Avatar billede Slettet bruger
08. november 2006 - 20:35 #66
Forresten, kan man ikke få den til at slette den allerbagerste / på folder automatisk? for hvis man går frem og tilbage op til flere gange ved en mappe.. kommer der en masse /'er, og hvis man får tilstrækkeligt af dem på, blokere eventuelle internet security programmer...
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:37 #67
Angående "/": Hvis det er 08/11-2006 20:17:01 mener:

foldersplittet = standardFileName & "folder="
for j = 0 to CInt(ubound(foldersplit)) - 1
  foldersplittet = foldersplittet & foldersplit(j) & "/"
next
foldersplittet = left(foldersplittet, len(foldersplittet) - 1)
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:38 #68
Angående "Forresten, kan man ikke få den til at slette den allerbagerste / på folder automatisk? for hvis man går frem og tilbage op til flere gange ved en mappe":

Say what? :-)
Den forstod jeg ikke.. :-)
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:38 #69
Hovsa..

Jeg mente at det var 08/11-2006 20:30:15 jeg ikke forstod..

Sikkert også det andet.. :-)
Avatar billede Slettet bruger
08. november 2006 - 20:40 #70
prøv at lave nogle mapper, og så lav funktionen

Det virker fint hvis man kun skal 1 mappe op, men hvis man skal 2 mapper op, så står den bare stille og viser samme mappe hele tiden...
Avatar billede Slettet bruger
08. november 2006 - 20:42 #71
hov! nu virker det faktisk, ved at man fik fjernet den /
Avatar billede Slettet bruger
08. november 2006 - 20:43 #72
den tog jo alt foran / og slettede,.. og da der ikke var noget, ku den ik slette noget så mappen forsvandt :) logisk nok faktisk
Avatar billede Slettet bruger
08. november 2006 - 20:44 #73
Jeg takker igen :) nu skal jeg bare ha fundet ud af en metode, hvorpå den tjekker om der findes en fil med samme navn, blot med tn_ foran og bruger den istedet (for at få thumbs) og hvis der så ikke findes sådan en, bruger den det normale billede som thumb..

men det behøver du ik hjælpe med hvis du ik gider :)
Avatar billede thesurfer Nybegynder
08. november 2006 - 20:47 #74
Se lige ( 06/11-2006 18:56:31 ) : http://www.eksperten.dk/spm/743110#rid6500956
Avatar billede Slettet bruger
08. november 2006 - 21:04 #75
det var en god idé !:) tak for det!
Avatar billede thesurfer Nybegynder
08. november 2006 - 21:09 #76
Det var så lidt :-)
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