Avatar billede tomb3 Nybegynder
29. december 2003 - 00:55 Der er 27 kommentarer og
1 løsning

hente billeder fra mappe > tabel

Skal bruge et script der kan tage alle *.jpg billeder fra en mappe, og smide dem ind i en tabel, som på:
www.t3ch.dk/bin/pic/
og skriver billedets titel i en celle under billedet.

Ikke thumbnail, da billederne ikke skal linke til noget.
Avatar billede eagleeye Praktikant
29. december 2003 - 01:08 #1
Jeg har dette du kan prøve at bruge til det formål. Du kan bestemme hvor mange billeder der skal vise pr række med variablen
maxImgPrRow = 4

Samt rette stien til med variablen sti, lige nu skal ASP filen ligge sammen med billederne.
sti = "./"

Så prøv:


<html>
<body>
<%
sti = "./"
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set Folder = fs.GetFolder( Server.Mappath(sti) )
%>
<TABLE WIDTH="100%">
<%
imgPrRow = 0
maxImgPrRow = 4
For Each file in Folder.Files
If Right(file.Name,4) = ".jpg" Then
  if imgPrRow = 0 then Response.Write "<tr>"
%> 
  <td align="center"><img src="<%=sti%><%=file.Name%>" border="0" alt="<%=file.Name%>">
      <br><%=file.Name%>
  </td>
<%
  imgPrRow = imgPrRow + 1
  if imgPrRow = maxImgPrRow then
    Response.Write "</tr>"
    imgPrRow = 0
  end if
End If
Next
if imgPrRow > 0 then Response.Write "</tr>"
%>
</table>
</body>
</html>
Avatar billede tomb3 Nybegynder
29. december 2003 - 01:17 #2
Du en skat :D
du har redet mig dag! heh
Avatar billede tomb3 Nybegynder
29. december 2003 - 01:19 #3
Lige en ting.. Den tager ikke billeder
1.jpg, 2.jpg, 3.jpg ...> 10.jpg,

men:
1.jpg, 10.jpg

Kan det ik ændres, så den tager 1, 2, 3, etc?
Avatar billede eagleeye Praktikant
29. december 2003 - 01:20 #4
FSO kan ikke sorteere filerne så skal man først ligge dem ind i enten et array eller recordset for sortere navne i arrayet/recordset for så at skrive det ud.
Avatar billede tomb3 Nybegynder
29. december 2003 - 01:33 #5
hmm ok.. så må jeg bare til at ømdøbe hele lortet med til 0001.jpg, etc..
Avatar billede eagleeye Praktikant
29. december 2003 - 01:48 #6
Ja det er også en mulighed

Eks med sortering af filnavnet.

<html>
<body>

<%
sti = "./"
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set Folder = fs.GetFolder( Server.Mappath(sti) )


filList = ""
For Each file in Folder.Files
If Right(file.Name,4) = ".jpg" Then
  filList = filList & "," & file.Name
end if
next
if filList <> "" then filList = Mid(filList,2)
filArr = Split(filList,",")
filArr = Sorter(filArr)

%>

<TABLE WIDTH="100%">
<%
imgPrRow = 0
maxImgPrRow = 4
For i = lbound(filArr) to ubound(filArr)
  if imgPrRow = 0 then Response.Write "<tr>" 
%> 
  <td align="center"><img src="<%=sti%><%=filArr(i)%>" border="0" alt="<%=filArr(i)%>">
      <br><%=filArr(i)%>
  </td>
<%
  imgPrRow = imgPrRow + 1
  if imgPrRow = maxImgPrRow then
    Response.Write "</tr>"
    imgPrRow = 0
  end if
Next
if imgPrRow > 0 then Response.Write "</tr>"
%>
</table>
</body>
</html>

<%
Function Sorter(ByVal tabel)
Dim blnContinue, i, varFirst, varSecond
    blnContinue = True
    Do Until blnContinue = False
        blnContinue = False
        For i = 0 to UBound(tabel)
            If i = UBound(tabel) Then Exit For
            Arr = Split(tabel(i),".")
            tmp1 = arr(0)
            Arr = Split(tabel(i+1),".")
            tmp2 = arr(0)
            If tmp1 > tmp2 Then
                varFirst = tabel(i)
                varSecond = tabel(i+1)
                tabel(i) = varSecond
                tabel(i+1) = varFirst
                blnContinue = True
            End If
        Next
    Loop
Sorter = tabel
End Function
%>
Avatar billede tomb3 Nybegynder
29. december 2003 - 01:52 #7
hmm det ændrede ikke noget
Avatar billede eagleeye Praktikant
29. december 2003 - 01:55 #8
PRøv at lave den funtion Sorter om til denne:


<%
Function Sorter(ByVal tabel)
Dim blnContinue, i, varFirst, varSecond
    blnContinue = True
    Do Until blnContinue = False
        blnContinue = False
        For i = 0 to UBound(tabel)
            If i = UBound(tabel) Then Exit For
            Arr = Split(tabel(i),".")
            tmp1 = arr(0)
            if isnumeric(tmp1) then tmp1 = Int(tmp1)
            Arr = Split(tabel(i+1),".")
            tmp2 = arr(0)
            if isnumeric(tmp2) then tmp2 = Int(tmp2)
            If tmp1 > tmp2 Then
                varFirst = tabel(i)
                varSecond = tabel(i+1)
                tabel(i) = varSecond
                tabel(i+1) = varFirst
                blnContinue = True
            End If
        Next
    Loop
Sorter = tabel
End Function
%>
Avatar billede tomb3 Nybegynder
29. december 2003 - 01:59 #9
Nice .. thx ;)
Avatar billede tomb3 Nybegynder
29. december 2003 - 02:09 #10
Hvad hvis jeg vil have den til at vise fx. 40 pics pr. side?
Avatar billede eagleeye Praktikant
29. december 2003 - 02:20 #11
så skal du hvade bygget paging in på og der så letter da du har det med arrayet...

<html>
<body>

<%
sti = "./"
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set Folder = fs.GetFolder( Server.Mappath(sti) )


filList = ""
For Each file in Folder.Files
If Right(file.Name,4) = ".jpg" Then
  filList = filList & "," & file.Name
end if
next
if filList <> "" then filList = Mid(filList,2)
filArr = Split(filList,",")
filArr = Sorter(filArr)

%>

<TABLE WIDTH="100%">
<%
start = Request.Querystring("start")
if start = "" then start = 0 
antalBillederPrSide = 40
imgPrRow = 0
maxImgPrRow = 4
Antalsider = int(ubound(filArr) / antalBillederPrSide)
for i = start to (start + antalBillederPrSide-1)
  if not i > ubound(filArr) then

    if imgPrRow = 0 then Response.Write "<tr>" 
%> 
  <td align="center"><img src="<%=sti%><%=filArr(i)%>" border="0" alt="<%=filArr(i)%>">
      <br><%=filArr(i)%>
  </td>
<%
    imgPrRow = imgPrRow + 1
    if imgPrRow = maxImgPrRow then
      Response.Write "</tr>"
      imgPrRow = 0
    end if
  else
    nesteside = 1
  end if
Next
if imgPrRow > 0 then Response.Write "</tr>"
%>
</table>
<%
if start <> 0 then
  response.write "<a href=""?start=" & (start - antalBillederPrSide) & """>Forrige</a>"
end if
response.write(" ")
if nesteside <> 1 then
  response.write "<a href=""?start=" & (start + antalBillederPrSide) & """>Næste</a>"
end if
%>
</body>
</html>


..og function skal naturigvis stadig være her ;)
Avatar billede tomb3 Nybegynder
29. december 2003 - 02:52 #12
Nu er det jo bare helt perfekt :)

Du skulle næste have nogle flere points.. heh
Avatar billede tomb3 Nybegynder
29. december 2003 - 03:44 #13
For nu at være rigtig besværlig, kan du så få den til at skrive
Side 1 2 3 4 5 etc
i bunden, fremfor "frem - tilbage" ?
Avatar billede eagleeye Praktikant
29. december 2003 - 11:12 #14
ja ;) men det går nok

Du laver bare en for sætning:

for i = 1 to Antalsider
  response.write "<a href=""?start=" & ((i-1)*antalBillederPrSide) & """>i</a> "
next
Avatar billede tomb3 Nybegynder
29. december 2003 - 12:42 #15
Hm.. så skriver den: i i i i i
og ikke 1 2 3 4 5
Avatar billede tomb3 Nybegynder
29. december 2003 - 12:58 #16
Den viser også kun side I I
selvom der er 3.

Går jeg til side 3, kan jeg se alle 3 ( I I I )
men på første side kan jeg som sagt kun se 2?
Avatar billede tomb3 Nybegynder
29. december 2003 - 19:14 #17
Hvordan får jeg den til at skrive 1 2 3 etc?
Skal nok lade vær med at plage dig mere så :)

Har kigget lidt på det, men kunne ikke få det til at fungere :(
Avatar billede eagleeye Praktikant
30. december 2003 - 00:22 #18
hehe ;) det fordi det skal være sådan her:

for i = 1 to Antalsider
  response.write "<a href=""?start=" & ((i-1)*antalBillederPrSide) & """>"&i&"</a> "
next
Avatar billede tomb3 Nybegynder
30. december 2003 - 00:55 #19
Ja det hjalp :D

thx m8
Avatar billede tomb3 Nybegynder
30. december 2003 - 01:01 #20
Kan simpelthend ikke lade vær med at forstyre dig..

Den viser ikke side 4 i "antalBillederPrSide) & """>"&i&"
Avatar billede tomb3 Nybegynder
30. december 2003 - 01:05 #21
Doh.. skal måske lige fortælle jeg har 130 billeder, med 40 på hver side, hvilket giver 10 billeder tli side 4..
Avatar billede eagleeye Praktikant
30. december 2003 - 10:38 #22
Nåja det længe siden det blevt lavet ;)
Det fordi første side faktisk er side 0 så prøv lige sådan her:

for i = 0 to Antalsider
  response.write "<a href=""?start=" & ((i)*antalBillederPrSide) & """>"&(i+1)&"</a> "
next
Avatar billede tomb3 Nybegynder
30. december 2003 - 12:51 #23
Nu er det jo bare helt perfekt! :D
Avatar billede tomb3 Nybegynder
05. januar 2004 - 13:20 #24
Har lige et lille problem med scriptet, på en side jeg helst ikke vil poste her. Kan du kontakte mig på icq/msn?
Avatar billede tomb3 Nybegynder
05. januar 2004 - 20:17 #25
fik selv løst problemet...
Avatar billede tomb3 Nybegynder
06. januar 2004 - 01:06 #26
hedder billeder 3D1.jpg, etc... bliver de sorteret således:

3D1.jpg
3D2.jpg
etc..

hedder billeder derimod B1.jpg, etc..
bliver de sorteret på denne måde:
B1.jpg
B10.jpg
etc..

why?

Kode:

<%
sti = "./"
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set Folder = fs.GetFolder( Server.Mappath(sti) )


filList = ""
For Each file in Folder.Files
If Right(file.Name,4) = ".jpg" Then
  filList = filList & "," & file.Name
end if
next
if filList <> "" then filList = Mid(filList,2)
filArr = Split(filList,",")
filArr = Sorter(filArr)

%>

</p>
</font>
                <font size="1" color="#000000">
               
<TABLE WIDTH="100%">
<%
start = Request.Querystring("start")
if start = "" then start = 0 
antalBillederPrSide = 48
imgPrRow = 0
maxImgPrRow = 6
Antalsider = int(ubound(filArr) / antalBillederPrSide)
for i = start to (start + antalBillederPrSide-1)
  if not i > ubound(filArr) then

    if imgPrRow = 0 then Response.Write "<tr>" 
%> 
  <td align="center"><img src="<%=sti%><%=filArr(i)%>" border="0" alt="<%=filArr(i)%>">
      <%=filArr(i)%>
  </td>
<%
    imgPrRow = imgPrRow + 1
    if imgPrRow = maxImgPrRow then
      Response.Write "</tr>"
      imgPrRow = 0
    end if
  else
    nesteside = 1
  end if
Next
if imgPrRow > 0 then Response.Write "</tr>"
%>
</table>
</font>
<br>
<center>
               
<%
if start <> 0 then
  response.write "<a target='_self' href=""?start=" & (start - antalBillederPrSide) & """><b><- Forrige</b></a> |"
end if
response.write(" ")
if nesteside <> 1 then
  response.write "<a target='_self' href=""?start=" & (start + antalBillederPrSide) & """><b>Næste -></b></a><br>"
end if
for i = 0 to Antalsider
  response.write "<a target='_self' href=""?start=" & ((i)*antalBillederPrSide) & """><b>"&(i+1)&"</b></a> "
next
%>
</center>

<%
Function Sorter(ByVal tabel)
Dim blnContinue, i, varFirst, varSecond
    blnContinue = True
    Do Until blnContinue = False
        blnContinue = False
        For i = 0 to UBound(tabel)
            If i = UBound(tabel) Then Exit For
            Arr = Split(tabel(i),".")
            tmp1 = arr(0)
            if isnumeric(tmp1) then tmp1 = Int(tmp1)
            Arr = Split(tabel(i+1),".")
            tmp2 = arr(0)
            if isnumeric(tmp2) then tmp2 = Int(tmp2)
            If tmp1 > tmp2 Then
                varFirst = tabel(i)
                varSecond = tabel(i+1)
                tabel(i) = varSecond
                tabel(i+1) = varFirst
                blnContinue = True
            End If
        Next
    Loop
Sorter = tabel
End Function
%>
<br>
Avatar billede bongi Juniormester
09. august 2006 - 14:23 #27
Sortering skal foregå så den lister den nyeste fil øverst ;)
Avatar billede bongi Juniormester
09. august 2006 - 14:24 #28
hov... forkert vindue.... sorry...
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