webForumDet fria alternativet

Visa bilder via mappnamn

ASP

12 svar · 338 visningar · startad av Meng

Medlem sedan feb. 2003549 inlägg
Frågan#1

Hej, jag vill börja med att säga att jag har sökt på detta men inte hittat något bra eller fungerande svar.

Jag vill att:

När jag skriver in ett mapp namn, ingen stig utan ett mappnamn. Så ska alla de (.jpg) bilder som ligger i mappen hämtas ut, alltid runt 6 st, max 10.

alltså mappnamnet hämtas via en <%=RecSet("mapp")%>

Formateringen klara jag själv av men hur gör jag en sådanhär funktion?!

tack sålänge :birp

Medlem sedan nov. 20017 144 inlägg
#2

Testa något liknande

Dim foldname : foldname=RecSet("mapp")
set fso = server.createobject("scripting.filesystemobject")
set folder = fso.getFolder(server.mappath(foldname))
set files = folder.files

Sub listmyfiles()
Dim i : i=1
    for each Item in files
    i=i+1
        if right(Item.name,4) = ".jpg" then
            response.write "<img src ='"& Item.name &"'><br>"
        end if
       if i > 10 then exit sub
    Next
end sub

set folder = nothing
set fso = nothing
set files =nothing

Call listmyfiles()
Medlem sedan mars 20015 287 inlägg
Medlem sedan feb. 2003549 inlägg
#4

ersatte Dim foldname : foldname=RecSet("mapp") med
Dim foldname : foldname= "upload"

Har en undermapp i samma bibliotek som har två jpg bilder, svar blev:

Microsoft VBScript runtime error '800a01c3'

Object not a collection

/testsystem/modtagelsesrapporter/mrapporter_displayonly.asp, line 262

VA?!

Medlem sedan mars 20015 287 inlägg
#5

Kanske en fullösning, om man nu ska ha det i en sub, släng in de tre raderna med "set" först i subben så ska det fungera.
Däremot om man ska ha "exit sub" inne i subben måste de tre sista raderna fortfarande stå utanför.

Hm.. inte optimalt inte. :(

Medlem sedan feb. 2003549 inlägg
#6

Med koden

<%Dim foldname : foldname= "/upload"

Sub listmyfiles()
set fso = server.createobject("scripting.filesystemobject")
set folder = fso.getFolder(server.mappath(foldname))
set files = folder.files
Dim i : i=1
    for each Item in files
    i=i+1
        if right(Item.name,4) = ".jpg" then
            response.write "<img href ='"& Item.name &"'><br>"
        end if
       if i > 10 then exit sub
    Next
end sub

set folder = nothing
set fso = nothing
set files =nothing

Call listmyfiles()%>

Får jag detta (kolla på den bifogade bilden)

Det jag vill är att den listar ALLA jpg bilder i mappen som anges i "foldname" och jag vill gärna kunna säga att de skal vara width="100" och att man kan klicka på dem så de öppnas i ett nytt fönster.

Medlem sedan feb. 2003549 inlägg
#7

Glömde bifoga här är den

fel1.gif
Medlem sedan nov. 20017 144 inlägg
#8

foldname= "/upload/"
Det är intressantare vad som står i källkoden....än att se en "intebild". ;)

Medlem sedan feb. 2003549 inlägg
#9

Jo klart =)

Testade ett annat script som jag hittade här som faktiskt funkade:

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Server.Mappath("upload"))
set Files = Folder.Files
For each Item In Files
Response.Write "<img src=""upload\" & Item.Name & """ width=""100"" hspace=""5"" border=""2"">"
Next
%>

Problemet är bara att mappen de hela ska køra genom senare är
R:\Rep-Ombygningsordre igangværende i værksted\

Och där i finns det mappar som heter t ex:

\625037 KA Leipzig - Rosental\

Hur gör jag detta? (I dessa mappar finns också Word dokument .doc så det behövs ju något filter som bara väljer .jpg filer.)

Medlem sedan feb. 2003549 inlägg
#10

Jag måste göra om mapp hämntningen till fysisk, eftersom detta är till ett intranät där alla har samma R:\

Hur gör jag?

Medlem sedan nov. 20017 144 inlägg
#11

Så här:

Set Folder = FSO.GetFolder("c:/wwwroot/hemsida/bilder/")
Medlem sedan feb. 2003549 inlägg
#12

skumt jag får Microsoft VBScript runtime error '800a004c'

Path not found

/afd/afd-lager/mrapporter_displayonly.asp, line 332

Men mappen finns.. ?

Kod nu:

<%If RS("billeder") = "" Then%>
		Rapporten indeholer ikke noge billeder
<%Else%>
		<i>Mappe</i><br><br> R:\<b><%=RS("billeder")%></b>\*.*<br><br>
	<%
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")

	Set Folder = FSO.GetFolder("R:\" & RS("billeder") & "")
	set Files = Folder.Files
	For each Item In Files
	Response.Write "R:\Rep-Ombygningsordre igangværende i værksted\" & RS("billeder") & "\" & Item.Name & ""
	Response.Write "<a href=""R:\" & RS("billeder") & "\" & Item.Name & """ target=""new""><img src=""R:\" & RS("billeder") & "\" & Item.Name & """ width=""100"" hspace=""5"" border=""2""></a>"
	Next
	%>
<%End If%>

<%=RS("billeder")%> = test

Medlem sedan feb. 2003549 inlägg
#13

Kom på att jag inte behöver den fysiska stigen! R:\ ligger på server9 och heter \\turbo9\arkiv\

Har testat och de funkar. nu har jag ett nytt problem. under arkiv så ska jag ner i mappen "Rep-Ombygningsordre igangværende i værksted" och sen är det undermapparna till dessa som jag ska ner och hämta bilder i.

Antar att de danska æ och alla mellanrum som gör att det inte funkar.

har testat att bara skriva:

<img src="\\turbo9\arkiv\Rep-Ombygningsordre igangværende i værksted\test\Img_0624.jpg" width="100">

Och detta funkar utmärkt.

också att köra med \\Turbo9\arkiv\test\ i scriptet så funkar det, men så snart jag går genom mappen "Rep-Ombygningsordre igangværende i værksted" så går det galet. Finns det något sätt jag kan ersätta mellanrummen och "æ" så den avläser adressen rätt?

269 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)