Avatar billede mskjoldp Novice
24. december 2003 - 02:26 Der er 10 kommentarer og
1 løsning

Sti til en mappe søges

Jeg har en fil (galleri.asp) der lister de filer (billeder - dog pånær selve filen galleri.asp) der er i den rod (mappe) som galleri.asp ligger i. Funktionen virker så længe jeg sender browserbrugeren til galleri.asp, men jeg vil gerne (ønske tænkning) inkludere galleri.asp i default.asp, men så går det galt....

default.asp ligger i et Virtual directory under et www site (www.site.dk/virtual/default.asp)

galleri.asp ligger så i en mappe herunder (www.site/virtual/upload/galleri.asp)

Problemet er at hvis jeg inkludere galleri.asp i default.asp så lister galleri.asp de filer der ligger i roden hos default.asp. Det er ikke ønskeligt da billederne der skal vises ligger i mappen "upload" sammen med galleri.asp

Det jeg så gerne vil er at få kontrol med hvor galleri.asp "kigger"/viser filer fra.

Jeg har prøvet at ændre stien i disse koder fra galleri.asp:

strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files

(sender lige hele molevitten fra galleri.asp)
Avatar billede mskjoldp Novice
24. december 2003 - 02:27 #1
Hele galleri.asp

<% if mode = "galleri" then %>
<center><font class="main"><b>Galleri</b></font></center>
<%
'------------------------------------------------
'henter info om siden
'------------------------------------------------
page = trim(Request.QueryString("page"))
start = trim(Request.QueryString("start"))

'------------------------------------------------
'Åbner Filsystem
'------------------------------------------------
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files

'------------------------------------------------
'grund variabler
'------------------------------------------------
row_count = 0
row = 1
max_row = 5
count = 1
If NOT start <> "" then
Start = 1
End If
%>

<p align=center>

<%
'------------------------------------------------
'Info variabler
'------------------------------------------------

info_page = 0
info_page_count = 0
info_Count = 0

'------------------------------------------------
'Info Script, udregner og udskriver info til siden
'------------------------------------------------
If page <> "" then%>
<table><tr><td><td><p>side <a href='galleri.asp'>1</a></p>
</td></td></tr></table>
<%else%>
<table><tr><td><td><p>Side 1</p>
</td></td></tr></table>
<%End If

For Each objFileItem in objFolderContents
info_Count = info_Count + 1
info_page = info_page + 1
if info_page = 10 then
info_page_count = info_page_count + 1
info_page = 0
End If
If info_page = 0 then
If trim(info_page_count + 1) = trim(page) then %>
<table><tr><td><td><p><%=info_page_count + 1 & " "%></p>
</td></td></tr></table>
<%Else%>
<table><tr><td><td><%response.write "<a href='galleri.asp?start=" & info_count & "&page=" & info_page_count + 1 & "'>" & info_page_count + 1 & "<a> "%>
</td></td></tr></table>
<%End If
End If
Next%>
<p>&nbsp;&nbsp;Der er ialt <b><%=(info_Count) - 1%></b> billeder
<% if (info_page_count) * 10 = info_count then %>
<%Response.write " på <b>" & (info_page_count)  & "</b> sider<br>"
Else
Response.write " på <b>" & (info_page_count) + 1 & "</b> sider<br>"
End If
%>
<div align="center">
<table border="1" cellspacing="3" cellpadding="3">
  <tr>

<%
For Each objFileItem in objFolderContents

If objFileItem.Name = "galleri.asp" then
Else
 
  If CLng(count) < CLng(start) then
  count = count + 1
  Else

  If CLng(row) => CLng(max_row) And row_count = 2 then
  Else
 
 
 
 
  If row_count > 1 then
    response.write "<tr>"
    row_count = 0
    row = row + 1
  End If

 
  Response.write " <td><a href='"
  Response.Write(objFileItem.Name)
  Response.write "'><img border=0 src='" & (objFileItem.Name) & "' alt='" & (objFileItem.Name) & "' width=239 height=180></a>"
  row_count = row_count + 1   
  count = count + 1
End If
End If
End If
Next
%>

    </td>
  </tr>
</table>
</div>
<%end if%>
Avatar billede mskjoldp Novice
24. december 2003 - 02:33 #2
Har rodet en del med det nu uden resultat... :(
Avatar billede soda Nybegynder
24. december 2003 - 10:34 #3
Hvis www.site.dk/virtual/ er ens for begge, så kunne du gøre således..

strPhysicalPath = Server.MapPath(strPathInfo) & "upload"

Så kunne du sagtens have galleri.asp liggende et andet sted.

Jeg bruger det selv.

F.eks har jeg en GetPic.asp, som ligger i C:\inetpub\wwwroot\ ,men den henter filer fra et helt andet drev.

Følgende kode tager udgangspunkt i undermappen \venner og viser de foldere der måtte ligge i den. Hvis man vælger en af mapperne (link), så vises billederne fra den mappe. Scriptet går dog kun et niveau ned.

------------------ venner.asp -------------------

<%@ Language="VBScript"%>
<% Option Explicit %>
<%
    response.write _
    "<html>" & vbCrLf &_
    "<head>" & vbCrLf &_
    "<title>Billeder af venner</title>" & vbCrLf &_
    "<link rel='stylesheet' href='style.css' type='text/css'>" & vbCrLf &_
    "</head>" & vbCrLf &_
    "<body OnLoad=""window.status='Venner';return true"">" & vbCrLf &_
    "  <center>" & vbCrLf

    Dim PageName, FSO, ImgLoc, Folders, Folder, QString, File, Image

    PageName = Mid(Request.ServerVariables("SCRIPT_NAME"), InStrRev(Request.ServerVariables("SCRIPT_NAME"), "/") + 1)

    Set FSO = CreateObject("Scripting.FileSystemObject")

    ImgLoc = "./venner/"

    if Request.Querystring("File") <> "" then                ' Viser valgte billede
       
        response.write _
        "  <p/>" & vbCrLf & _
        "  <a href=java script:history.go(-1);>Tilbage</a>" & vbCrLf & _
        "  <p/>" & vbCrLf & _
        "  <img src=showpic.asp?Folder=" & Request.Querystring("Folder") & "&File=" & Request.Querystring("File") & ">" & vbCrLF
'        "  <img src=" & ImgLoc & Request.Querystring("Folder") & "/" & Request.Querystring("File") & ">" & vbCrLF
   
    elseif Request.Querystring("Folder") = "" then            ' Viser liste over tilgændelige foldere

        Set Folders = FSO.GetFolder(Server.MapPath(ImgLoc))

        Response.write "  <h1>Vælg Navn</h1>" & vbCrLf & _
        "  <p/>" & vbCrLf

        For Each Folder in Folders.SubFolders
            QString = PageName & "?Folder=" & Folder.Name
            response.write "  <a href='" & QString & "'>" & Folder.Name & "</a><p/>" & vbCrLf
        Next
    else                                                    ' Viser liste over tilgændelige filer i valgte folder.
        ImgLoc = ImgLoc & request.querystring("folder")

        Set Folder = FSO.GetFolder(Server.MapPath(ImgLoc))

        Response.write "  <h1>Vælg Billede</h1>" & vbCrLf & _
        "  <p/>" & vbCrLf

        For Each File in Folder.Files
        If (LCase(Right(File.Name,4))) = ".jpg" or (LCase(Right(File.Name,4))) = ".gif" or (LCase(Right(File.Name,4))) = ".bmp" Then
            QString = PageName & "?Folder=" & Request.Querystring("Folder") & "&File=" & File.Name
            response.write "  <a href='" & QString & "'>" & File.Name & "</a><p/>" & vbCrLf
        End if
        Next
       
        response.write "  <a href=java script:history.go(-1);>Tilbage</a>" & vbCrLf
    End if

    response.write _
    "  </center>" & vbCrLf &_
    "</body>" & vbCrLf &_
    "</html>"
%>


----------------- venner.asp --------------
Avatar billede mskjoldp Novice
24. december 2003 - 12:24 #4
-> soda

nice script, men jeg kan ikke få det til at virke. Jeg har prøvet at ændre galleri.asp:

strPhysicalPath = Server.MapPath(strPathInfo) & "upload"

samt nogen varialtioner heraf, uden held.

Jeg har prøvet dit script og tilpasset det, men får blank output efter valget af Folder...

Jeg tror det måske er sådan fordi jeg inkludere galleri.asp (venner.asp) i default.asp, jeg får nemlig dette post ved valg af mappe:

http://www.spweb.dk/deltavings/default.asp?mode=galleri?Folder=gfx

Ved du om dit script er gearet til at klare at scriptet er inkluderet i en fil?

/Skjold

OG GOD JUL
Avatar billede soda Nybegynder
24. december 2003 - 13:05 #5
Mit script vil kun vise undermapper og filer med extention .jpg, .gif eller .bmp. Skal dne vise andre filer, så skal du ændre/fjerne i denne linje..

If (LCase(Right(File.Name,4))) = ".jpg" or (LCase(Right(File.Name,4))) = ".gif" or (LCase(Right(File.Name,4))) = ".bmp" Then

Du kan se mit script i funktion her http://soda.dk/venner.asp

Script tager ikke høje for mængden af mapper. Det er ligeglad, men den er ikke gear undermapper i undermapper, men med en lille ændring kan det lade sig gøre.

Umiddelbart så skulle det ikke være noget problem, at lave mit script til include.
Avatar billede mskjoldp Novice
24. december 2003 - 14:36 #6
det er juletid... fanger dig senere
Avatar billede mskjoldp Novice
25. december 2003 - 14:59 #7
soda har du showpic.asp?
Avatar billede mskjoldp Novice
25. december 2003 - 17:23 #8
har løst spørgsmålet med dette vidunderlige script :)

lukker spg.

/Skjold
Avatar billede mskjoldp Novice
25. december 2003 - 17:24 #9
Avatar billede soda Nybegynder
25. december 2003 - 17:52 #10
Hmm. Nu hvor du har fået løst dit problem. Skulle de point, så ikke være gået til mig ?!? - Bare nysgerrig.
Avatar billede soda Nybegynder
25. december 2003 - 17:53 #11
Ahhh misforstod... ja jeg har det script. Har lavet mine egen visning af billeder ud fra den kode.
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