Avatar billede daniel_d Nybegynder
02. marts 2003 - 21:26 Der er 16 kommentarer og
1 løsning

thumbnails og dynamisk side

Hej eksperter...

Jeg sidder med en problemstilling jeg har svært ved at løse.
Jeg vil gerne lave en side med tekst og et billedgalleri. Billedgalleriet skal kunne opdateres dynamisk, så hvordan skal man teknisk gribe det an ?

Jeg kunne forestille mig at man havde 2 mapper hvor i den ene mappe lå de rigtige billeder og i den anden mappe lå thumbs'ene.

Billederne i hver mappe skulle så have samme navn, så når man klikkede på thumbet ville man vide hvilket billede man skal vise frem.

Er jeg helt gal på den ?

Findes der evt en opensource el. freeware udgave af noget der minder om som jeg kunne bruge til min hjemmeside ?

Mvh
Daniel
Avatar billede pfp Nybegynder
03. marts 2003 - 00:08 #1
Hvis du har ASPImage installeret på din server eller web-hotel kan du anvende den til at generere thumbnails ud fra dine originale billeder. På den måde behøver du kun originalerne.
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:11 #2
Det har jeg ikke, og påtænker nok en løsning som ikke stiller det krav. Men som jeg ser det er det kun en detalje.

Jeg er lidt på bar bund her, så lidt hjælp er kærkommen

Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 00:18 #3
Du kan liste alle filer i en mappe ved at bruge FileSystemObject, og så linke videre som du selv er inde på.
En anden løsning er at bruge en db
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:20 #4
jeg bruger i forvejen en db, men måske du kunne forklare dig nærmere ?
Avatar billede joshin Nybegynder
03. marts 2003 - 00:24 #5
Brug af database vi kræve at du enten lægger billederne i databasen, eller en reference. Så kan du bygge din side ud fra det
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:28 #6
Så vil jeg nok foretrække filesystemobject...
Jeg er stadig at betragte som begynder i asp selvom jeg har rodet med det i 1½ år efterhånden, så jeg ville blive superglad for en dokumentation på FileSystemObjectet eller måske et lille eks. :o)

Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 00:30 #7
Meget kort ;-)
Lister alle filer i egen mappe (sættes i line 2 "/.")
<%
Set objFSO = server.CreateObject ("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath("/."))

For Each objFile in objFolder.files
  Response.Write(objFile.name  & "<br>")
Next
%>
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:41 #8
aha, ja

Det man så skulle gøre...

1. en upload funktion (har jeg lavet)
2. 2 mapper på serveren. 1 til billederne og 1 til tumbnails
3. en funktion i sit admin modul hvorfra man vælger fra hvilken mappe en pågældende side skal hente sine billeder fra (thumbs)
3.1. en funktion ligeledes i sit adminmodul hvorfra man vælger hvilken mappe de rigtige billeder skal hentes fra
4. siden henter alle thumbs
5. hvert thumb har et link som hedder noget i stil med:
Sti valgt i pkt. 3.1/egetfilnavn.gif

Er det skudt helt ved siden af ?

Kan det gøres anderledes/bedre ?
Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 00:43 #9
Ser rigtigt ud
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:45 #10
Og hvordan klarer jeg så den¿ puha :o)
starter fra en ende af vel...

HJÆÆÆÆÆÆÆÆÆLP :o)

Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 00:51 #11
3:
Sæt en applicationsvariable
f.eks.:
Application.Contents("tumbs_path") = "/images/thumbs"
Application.Contents("image_path") = "/images/images"

...
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:53 #12
Hvad hjælper det?
Husk jeg stadig er relativ ny i feltet

Mvh
Daniel
Avatar billede daniel_d Nybegynder
03. marts 2003 - 00:59 #13
Puha... nok for træt lige nu til at tænke helt klart.
Vil gå i seng nu og prøve at tænde for "pæren" igen i morgen...
Tak for den hjælp jeg allerede har fået.

Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 01:01 #14
Du får lige lidt inspiration til del 4/5 (ikke testet ;-)
Set objFSO = server.CreateObject ("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(Application.Contents("tumbs_path")))

strPath= Application.Contents("tumbs_path")
strPathImg = Application.Contents("images_path")
i = 0

Response.Write("<table><tr>")
For Each objFile in objFolder.files
  strFile = objFile.name
  Response.Write("<a href=""" & strPathImg & strFile & """><td><img src=""" strPath & strFile & """></a>")
  i = i+1
  If i=3 Then ' 3 rækker per line
      i = 0
      Response.Write("</tr><tr>")
  End If
Next
Avatar billede daniel_d Nybegynder
03. marts 2003 - 01:05 #15
Takker...
Jeg vil kigge på det i morgen
:o)

Nu vil jeg lade sengen misbruge mig den halve nat :o)

Mvh
Daniel
Avatar billede joshin Nybegynder
03. marts 2003 - 01:54 #16
Idéen med applicationsvariable er at gøre den del dynamisk. Det er variable der gælder for hele sitet, og som ikke timer ud. Det kan også gøre statisk (so i følgende kode)
Koden kører på http://www.profweb.dk/billeder.asp hvis du vil se se den
bemærk at thumbs og billeder ikke hedder det samme !
(jeg bruger STGThumb til at generer dem med)

Koden kan naturligvis udbygges til at åbne i popup osv. den er kun menst som skelet, og kommer her:
<%
strPath= "/images/thumbs/"  ' Application.Contents("tumbs_path")
strPathLink = "/images/images/"    ' Application.Contents("images_path")

Set objFSO = server.CreateObject ("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))

i = 0
Response.Write("<h2 align='center'>Tryk på et af de små billeder for at se det i stort format</h2>")
Response.Write("<table align='center' border='0'><tr>")
For Each objFile in objFolder.files
  strFile = objFile.name
  ' Vis kun *.gif og *.jpg
  If LCase(Right(strFile,3)) = "jpg" Or  LCase(Right(strFile,3)) = "gif" Then 
      ' Fjerner de 3 første chars fra filnavnet på thumbs (mine hedder tb_*.jpg)
      strFileLink = Right(strFile,Len(strFile)-3)
      Response.Write("<td><a href='" & strPathLink & strFileLink & "'>" &_
      "<img src='" & strPath & strFile & "' border='0''></a></td>")
      i = i+1
      ' billder pr linie = 4
      If i=4 Then
        i = 0
        Response.Write("</tr><tr>")
      End If
  End If
Next
Response.Write("</tr></table>")

Set objFSO = Nothing
Set objFolder = Nothing
%>
Avatar billede daniel_d Nybegynder
19. marts 2003 - 15:10 #17
Sorry jeg først svarer nu, men har desværre ikke haft tiden til at arbejde videre med det. Så må desværre lade det ligge lidt endnu

Men takker for hjælpen og self. point til dig joshin

Mvh
Daniel
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