Avatar billede jespera Nybegynder
23. maj 2003 - 15:52 Der er 27 kommentarer og
1 løsning

vis billeder i mappe og lav thumbnails

Hej alle

Er der nogle der kan anbefale(evt link) eller har noget kode som gør følgende:

viser billeder i en undermappe
laver thumbnails af billeder
ved klik vises billedet i normal størrelse på samme side....

Har søgt lidt på nettet men kunne ikke rigtigt finde det rigtige..


Takker
Avatar billede -master-d- Nybegynder
23. maj 2003 - 15:58 #1
Sådan her viser du billeder fra en mappe.

<%
'undermappe
ImageDir = "/images/"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files
For Each Image In objFiles
    Response.Write "<p><img src=" & ImageDir & Image.Name & " width=""40"" height=""40""><br>"   
Next
Set objFS = Nothing
%>

kommer lige med en udvidelse om et par minutter...
Avatar billede saeco Nybegynder
23. maj 2003 - 16:01 #2
Jeg ved ikke om du har prøvet denne her:
http://www.zend.com/zend/spotlight/photogallery-part1.php
Avatar billede saeco Nybegynder
23. maj 2003 - 16:02 #3
Det var vist php i stedet for. Sorry
Avatar billede -master-d- Nybegynder
23. maj 2003 - 16:04 #4
Her åbner den et nyt vindue når der klikkes på billedet.

<html>
<head>
<title>Billed galleri</title>
<script>
function winOpen(urlen){
window.open(urlen,'picture','location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no');
}
</script>
</head>
<body>
<%
'undermappe
ImageDir = "/images/"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files
For Each Image In objFiles%>
<p><img src="<%=ImageDir & Image.Name%> " width="40" height="40" onclick="winOpen('<%=ImageDir & Image.Name%>');"><br>   
<%Next
Set objFS = Nothing
%>
</body>
</html>
Avatar billede nattevagten Nybegynder
23. maj 2003 - 16:09 #5
Jeg har et komplet system liggende, som jeg kan maile til dig.
Avatar billede -master-d- Nybegynder
23. maj 2003 - 16:11 #6
Sådan her så skærer den selv popuppen til

<html>
<head>
<title>Billed galleri</title>
<script language='javascript'>
function winOpen(urlen,billedid){

bred = document.images[billedid].width;
hoj = document.images[billedid].height;

window.open(urlen,'picture','width=bred,height=hoj,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no');
}

</script>
</head>
<body>
<%
'undermappe
ImageDir = "/images/"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files
i = 0
For Each Image In objFiles%>
<p><img src="<%=ImageDir & Image.Name%> " id="img<%=i%>" width="40" height="40" onclick="winOpen('<%=ImageDir & Image.Name%>',img<%=i%>);"><br>   
<%
i = i+1
Next
Set objFS = Nothing
%>
</body>
</html>
Avatar billede eagleeye Praktikant
23. maj 2003 - 16:17 #7
Her er et med paging så du kan angive hvor mange billeder du vil havde vist pr side og hvor mage du vil havde vist pr række.

1. viser billeder i en undermappe
Stien angive i denne variable:

billedeSti = "./hyttetur/"


2. laver thumbnails af billeder
I øjeblikket er laver den dem on til størrelsen WIDTH="116" HEIGHT="82"

3. ved klik vises billedet i normal størrelse på samme side

4. Paging så du kan bestemme hvor mange biller du vil havde vist pr side. Det kan angives i denne variable:
antalBillederPrSide = 6

<html>
<head>
<title></title>
</head>

<body bgcolor="A0B3C8">
<div align="center">

<table width="100%" border="0">
<%
billedeSti = "./hyttetur/"
antalBillederPrSide = 6
antalBillederPrRekke = 3


if Request.QueryString("billede") = "" then
  start = request.querystring("start")
  if start = "" then start = 0

  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.GetFolder(server.mappath(billedeSti))

  Set fc = f.Files
  For Each billed in fc
    arrayBuild = arrayBuild & billed.name & "|"
  next
  arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
 
  myArray = Split(arrayBuild, "|")

  Antalsider = int(ubound(myarray) / antalBillederPrSide)
  antal = 0
  for i = start to (start + antalBillederPrSide-1)
    if not i > ubound(myarray) then
      if antal = 0 then Response.Write "<TR>"
%>
<td width="<%=Int(antalBillederPrRekke/100)%>"><p align="center">
<a href="?billede=<%=billedeSti%>/<%=myArray(i)%>">
<img SRC="<%=billedeSti%>/<%=myArray(i)%>" border="1" color="black" WIDTH="116" HEIGHT="82">
</a></td>
<%
    else
      nesteside = 1
    end if

    antal = antal + 1
    if antal = 3 then
      Response.Write "</TR>"
      antal = 0
    end if
  next
  if antal > 0 then Response.Write "</TR>"
%>
  </table>
  <center>
<%
  if start <> 0 then
    response.write "<a href=""?start=" & (start - 6) & """>Forrige</a>"
  end if
  response.write("&nbsp;")
  if nesteside <> 1 then
    response.write "<a href=""?start=" & (start + 6) & """>Næste</a>"
  end if
%>
  </center>
<%
else
  'Vis billedet
%>
  <tr><td align="center">
  <img SRC="<%=Request.QueryString("billede")%>" border="1">
  <p align="center"><a href="java script:history.back();">Tilbage</a></p>
  </td>
  </tr>
  </table>
<%
end if %>
</div>
</body>
</html>
Avatar billede jespera Nybegynder
23. maj 2003 - 17:00 #8
Hey alle sammen det kigger jeg lige på senere eller i løbet af dagen i morgen.......Tak for hjælpen så lang.........
Avatar billede riishoj Nybegynder
23. maj 2003 - 18:21 #9
-master-d->>Jeg ved ikke om det er imod reglerne, men har du opgivet mig og http://www.eksperten.dk/spm/356000. Måske eagleeye kan løse problemet. Kan godt give flere point!
Avatar billede jespera Nybegynder
25. maj 2003 - 12:23 #10
-master-d- >>

Super fed paging, men den viker desværre ikke helt efter hensigten her hos mig....

Hvis jeg f.eks. har

11 billede i en mappe (f.eks. hyttetur)
antalBillederPrSide = 6

Viser den godt nok de første 6 billeder på den første side, men når jeg trykker på næste, viser den side 2 som den skal, men der er kun et billede på siden........Hvordan kan det være og hvor er resten af billederne....???
Avatar billede eagleeye Praktikant
25. maj 2003 - 12:26 #11
Mener du  -master-d-  i din kommentar?
Avatar billede jespera Nybegynder
25. maj 2003 - 12:31 #12
heheh....ups......

Det må du sku undskylde " EAGLEEYE " ......
Avatar billede eagleeye Praktikant
25. maj 2003 - 12:36 #13
;) 

Det forstår jeg ikke, det virker fint på her.
Hvad hedder billderne nogle speciellet karakter andet end bogstaver og tal?
Avatar billede jespera Nybegynder
25. maj 2003 - 12:37 #14
nej det gør de ikke.....prøver lige at give dem 1.jpg 2.jpg osv......
Avatar billede jespera Nybegynder
25. maj 2003 - 12:47 #15
nu virker det.......hvad kan der være med filnavnene
Avatar billede eagleeye Praktikant
25. maj 2003 - 12:49 #16
ok ??
Kan du komme med et eks på et af de filnavne som ikke blev vist?
Det må være noget med enten finder forkert navn eller ikke kan vise billdet hvis det indeholder en bestem karakter.
Avatar billede jespera Nybegynder
25. maj 2003 - 12:53 #17
lynbjergvej1.jpg

lars3.jpg

mols3.jpg
Avatar billede eagleeye Praktikant
25. maj 2003 - 12:57 #18
Det forstrå jeg ikke. Hvis du bruge de 3 filnavne så kommer de ikke med?
Avatar billede jespera Nybegynder
25. maj 2003 - 13:03 #19
Det er godt nok mærkeligt......

Det virker alligevel......gad vide om der har ligget en anden fil i mappen som har drillet f.eks. Thumbs.db.........
Avatar billede eagleeye Praktikant
25. maj 2003 - 13:13 #20
Ja der må være noget som driller.

Idag tager den alle filerne i folderen i dette loop:


  For Each billed in fc
    arrayBuild = arrayBuild & billed.name & "|"
  next


Det kan laves om så den kun tager billede filer jpg,jpeg,gif,bmf sådan her:

  For Each billed in fc
    if inStr(1,"gif,jpg,jpeg,bmp",LCase(fs.GetExtensionName(billed.name))) > 0 then
      arrayBuild = arrayBuild & billed.name & "|"
    end if
  next
Avatar billede jespera Nybegynder
25. maj 2003 - 13:39 #21
ja så virker det......lige et sidste spg.....

Hvis nu man ønsker flere billeder pr. række hvad gør man så. Jeg har prøvet at ændre antalBillederPrRekke til f.eks. 4, men der sker ikke noget....

By the way......Tak for hjælpen så langt, der er bare alle tiders....
Avatar billede eagleeye Praktikant
25. maj 2003 - 13:56 #22
Hvis du vil havde flere billeder pr side skulle du kunne rette denne:

antalBillederPrSide = 6

Til eksvis 12 pr side:

antalBillederPrSide = 12
Avatar billede eagleeye Praktikant
25. maj 2003 - 13:59 #23
Lige en rettesles til ;)

Dette kode som skriver forrige og næste side, da den er "hardcoded" til at tro den skal vise 6 pr. side.

<%
  if start <> 0 then
    response.write "<a href=""?start=" & (start - 6) & """>Forrige</a>"
  end if
  response.write("&nbsp;")
  if nesteside <> 1 then
    response.write "<a href=""?start=" & (start + 6) & """>Næste</a>"
  end if
%>



Til dette så den trækker det rigtige antal fra.:

<%
  if start <> 0 then
    response.write "<a href=""?start=" & (start - antalBillederPrSide) & """>Forrige</a>"
  end if
  response.write("&nbsp;")
  if nesteside <> 1 then
    response.write "<a href=""?start=" & (start + antalBillederPrSide) & """>Næste</a>"
  end if
%>
Avatar billede jespera Nybegynder
25. maj 2003 - 14:00 #24
ja men hvad med antalBillederPrRekke ?
Avatar billede eagleeye Praktikant
25. maj 2003 - 14:03 #25
Den skulle gerne vise dem i flere rækker og vis man angiver 3 pr række skulle det se sådan ud:
[img 1] [img 2] [img 3]
[img 4] [img 5] [img 6]

med 4 pr række:
[img 1] [img 2] [img 3] [img 4]
[img 5] [img 6] [img 7] [img 8]

Dog vises kun det antal som er angivet i antalBillederPrSide
Avatar billede jespera Nybegynder
25. maj 2003 - 14:07 #26
Ja det burde den gøre, altså hvis jeg vælger 4 pr. række

[img 1] [img 2] [img 3] [img 4]
[img 5] [img 6] [img 7] [img 8]

Men det gør den desværre ikke, det samme gælder hvis jeg vælger 2 pr. række altså

[img 1] [img 2]
[img 3] [img 4]

Det dutter heller ikke ?
Avatar billede eagleeye Praktikant
25. maj 2003 - 14:12 #27
Det gik ikke så godt med det kode ;)

Prøv sådan her:


<html>
<head>
<title></title>
</head>

<body bgcolor="A0B3C8">
<div align="center">

<table width="100%" border="0">
<%
billedeSti = "./hyttetur/"
antalBillederPrSide = 8
antalBillederPrRekke = 4


if Request.QueryString("billede") = "" then
  start = request.querystring("start")
  if start = "" then start = 0

  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.GetFolder(server.mappath(billedeSti))

  Set fc = f.Files
  For Each billed in fc
    if inStr(1,"gif,jpg,jpeg,bmp",LCase(fs.GetExtensionName(billed.name))) > 0 then
      arrayBuild = arrayBuild & billed.name & "|"
    end if
  next
  if arrayBuild <> "" then arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
 
  myArray = Split(arrayBuild, "|")

  Antalsider = int(ubound(myarray) / antalBillederPrSide)
  antal = 0
  for i = start to (start + antalBillederPrSide-1)
    if not i > ubound(myarray) then
      if antal = 0 then Response.Write "<TR>"
%>
<td ><p align="center">
<a href="?billede=<%=billedeSti%>/<%=myArray(i)%>">
<img SRC="<%=billedeSti%>/<%=myArray(i)%>" border="1" color="black" WIDTH="116" HEIGHT="82">
</a></td>
<%
    else
      nesteside = 1
    end if

    antal = antal + 1
    if antal = antalBillederPrRekke then
      Response.Write "</TR>"
      antal = 0
    end if
  next
  if antal > 0 then Response.Write "</TR>"
%>
  </table>
  <center>
<%
  if start <> 0 then
    response.write "<a href=""?start=" & (start - antalBillederPrSide) & """>Forrige</a>"
  end if
  response.write("&nbsp;")
  if nesteside <> 1 then
    response.write "<a href=""?start=" & (start + antalBillederPrSide) & """>Næste</a>"
  end if
%>
  </center>
<%
else
  'Vis billedet
%>
  <tr><td align="center">
  <img SRC="<%=Request.QueryString("billede")%>" border="1">
  <p align="center"><a href="java script:history.back();">Tilbage</a></p>
  </td>
  </tr>
  </table>
<%
end if %>
</div>
</body>
</html>
Avatar billede jespera Nybegynder
25. maj 2003 - 14:27 #28
hehe helt ok....

Så virker det......

Tak for den store hjælp........og hermed point.....

Ha en god dag.... :-)
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