Avatar billede w13 Novice
28. februar 2005 - 18:47 Der er 14 kommentarer og
1 løsning

Galleri - Mapper i forudbestemt folder

-Hej Eksperter...

-Jeg fandt for lang tid siden en billed-upload med tilhørende galleri til gratis download på nettet og har nu brug for at rette den lidt til, hvilket jeg har problemer med... Koden for galleriet er følgende:
-------------------------------------
<% Response.Buffer = True %><html>

<head>
<script language="JavaScript">
<!--
function jumppage(sel)
{
  var i = sel.selectedIndex
  self.location.href = sel.options[i].value
}
// -->
</script>
</head>

<body>

<b><font size="4">&nbsp;Billed-galleri:</font></b><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="789" id="galleri" height="1">
<tr>
<td align="center" width="39%" height="1" rowspan="2">
</td>
<td align="center" width="49%" height="1">
  <form action=<%=CurFile%> method="POST">
  <p align="right">
  <b><font size="2">Vælg album</font></b>&nbsp; </p>
  </form>
  </td>
<td align="center" width="12%" height="1">
  <p align="left">&nbsp;<select name="go" onChange="jumppage(this);" size=1>
  <%
  ShowSub = request("ShowSub")
  ShowPic = request("ShowPic")
  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
  For each Folder in objFolder.SubFolders
      If Left(Folder.Name,1)<>"_" Then
          Response.write "<option "
          If ShowSub=Folder.Name Then
              Response.Write "selected "
          End if
          Response.Write"value='" & CurFile & "?ShowSub="
          Response.Write(Replace(Folder.Name, " ", "%20"))
          response.write "'>"
          Response.Write(Folder.Name & "</option>")
          If ShowSub <= " " Then
            ShowSub = Folder.Name
        End if
      End if
  Next
  Set objFSO = Nothing
  %>
  </select></td>
</tr>
<tr>
<td align="center" width="49%" height="1">
  </td>
<td align="center" width="12%" height="1">
</td>
</tr>
</table>

<%
If ShowPic > " " then
  ShowPic = Replace(ShowPic, " ", "%20")
  Response.Write "<a href='java script:history.go(-1)'><img border=1 src='" & ShowPic & "'><BR><BR><B><font size='2'>Tilbage til sidste side</font></B></a>"
Else
%>
  <table border="0" cellpadding="0" cellspacing="5" style="border-collapse: collapse" bordercolor="#000000" width="789" id="Pics1">
  <tr>
  <%
  strPhysicalPath = Server.MapPath(".\" & ShowSub)
  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
    If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" OR Ucase(Right(objFileItem.Name,4))=".BMP" THEN
        ShowPic = Replace(objFileItem.Name, " ", "%20")
      'Response.write "<td align='center' width='25%'><a href=" & ShowSub & "\"
      Response.write "<td align='center' width='25%'><a href=" & CurFile & "?ShowPic=" & ShowSub  & "\" & ShowPic
      'Response.Write(Replace(objFileItem.Name, " ", "%20"))
      Response.write ">"
      Response.Write("<img border=1 src='" & ShowSub & "\" & objFileItem.Name & "' width=100>")
      Response.Write("<p align='center'><b>" & Mid(objFileItem.Name,1,Len(objFileItem.Name)-4) & "</b>")
      Response.write "</a></td>"
      PictureNo = PictureNo + 1
      If PictureNo=4 Then
          Response.write "</tr><tr>"
          PictureNo = 0
      End if
    End if
    Next
    Set objFSO = Nothing
  End if
  %>
  </tr>
  </table>
<%
End if
%>

</body>
</html>
-------------------------------------
-Mit problem er nu, hvordan jeg får koden til at vise alle undermapper i en forudbestemt folder i stedet for bare i den folder, som galleri-filen ligger i... (Folderen hedder "upload")

-Håber I kan hjælpe...
W13
Avatar billede busschou Praktikant
01. marts 2005 - 17:45 #1
Det er linjerne :
-----------------------
  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
------------------------
Som finder frem til den mappe du er I
Hvis du ønsker en anden placering kan du rette i de linjer.
Det må være den nedeste linje som definerer hvilken folder/mappe du ønsker der skal kigges i
Avatar billede w13 Novice
01. marts 2005 - 19:54 #2
Ja, jeg gættede også på, det var en af følgende to linjer:
  Set objFolder = objFile.ParentFolder
  Set objFolderContents = objFolder.Files
Mit problem er bare, at jeg har forsøgt at skrive forskellige ting, men ikke kan få det til at virke... Jeg ved ikke, hvordan jeg ellers skal skrive det. Nogen der kan hjælpe med det?
Avatar billede busschou Praktikant
01. marts 2005 - 20:01 #3
prøv neden under linjen:
Set objFolder = objFile.ParentFolder
at skrive :
Response.Write(objFolder)
Så kan du jo se hvordan den nuværende mappe skal skrives
Deraf burde du kunne se hvordan du skal skrive den mappe du ønsker og så skal du bare rette så der står:
Set objFolder = "den rigtige mappe"
Avatar billede w13 Novice
01. marts 2005 - 20:16 #4
Desværre, jeg fik den til at udskrive det og har efterlignet det med den rigtige adresse på forskellige måder, men den skriver fejl :(

Prøvede blandt andet:
Set objFolderContents = "c:\Placering\Websted\Mappe"
Og:
Set objFolderContents = "c:\Placering\Websted\Mappe\"
Og:
Set objFolderContents = c:\Placering\Websted\Mappe
Og:
Set objFolderContents = c:\Placering\Websted\Mappe\

Samt en del andre variationer... Nogle bud?
Avatar billede busschou Praktikant
01. marts 2005 - 20:27 #5
hvad skrev den ud til dig i din Response.Write(objFolder) ?
Avatar billede busschou Praktikant
01. marts 2005 - 20:30 #6
desuden er det jo ikke objFolderContents du skal sætte til mappen!
Det er objFolder
objFolderContents indeholder jo filerne i mappen
Avatar billede w13 Novice
01. marts 2005 - 20:30 #7
Ups, hehe... prøver li' det rigtige så...
Avatar billede w13 Novice
01. marts 2005 - 20:35 #8
Denne fejl:
  <font face="Arial" size=2>
<p>Microsoft VBScript runtime </font> <font face="Arial" size=2>error '800a01a8'</font>
<p>
<font face="Arial" size=2>Object required: '[string: &quot;C:\webs\talkactive\w&quot;]'</font>
<p>
<font face="Arial" size=2>/galleri.asp</font><font face="Arial" size=2>, line 64</font>
Ved denne linje:
  Set objFolder = "C:\webs\talkactive\web7910\2biaz.dk\upload"
Avatar billede busschou Praktikant
01. marts 2005 - 20:37 #9
jamen hvad siger den hvis du bare beder den om at skrive objFolder ud som den var oprindeligt ?... er nysgerrig for at se hvordan den beskriver mappen
Evt kan du forsøge lave en mappath på upload
Avatar billede busschou Praktikant
01. marts 2005 - 20:43 #10
alternativ så find ud af hvad variablen strPathInfo indeholder og ret den i stedet
Avatar billede w13 Novice
01. marts 2005 - 21:52 #11
"Response.Write objFolder" giver følgende:
C:\webs\talkactive\web7910\2biaz.dk
Avatar billede busschou Praktikant
02. marts 2005 - 08:06 #12
<% Response.Buffer = True %>

<html>

<head>
<script language="JavaScript">
<!--
function jumppage(sel)
{
  var i = sel.selectedIndex
  self.location.href = sel.options[i].value
}
// -->
</script>
</head>

<body>

<b><font size="4">&nbsp;Billed-galleri:</font></b><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="789" id="galleri" height="1">
<tr>
<td align="center" width="39%" height="1" rowspan="2">
</td>
<td align="center" width="49%" height="1">
  <form action=<%=CurFile%> method="POST">
  <p align="right">
  <b><font size="2">Vælg album</font></b>&nbsp; </p>
  </form>
  </td>
<td align="center" width="12%" height="1">
  <p align="left">&nbsp;<select name="go" onChange="jumppage(this);" size=1>
  <%
  ShowSub = request("ShowSub")
  ShowPic = request("ShowPic")
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder("C:\webs\talkactive\web7910\2biaz.dk\upload")

  Set objFolderContents = objFolder.Files
  For each Folder in objFolder.SubFolders
      If Left(Folder.Name,1)<>"_" Then
          Response.write "<option "
          If ShowSub=Folder.Name Then
              Response.Write "selected "
          End if
          Response.Write"value='" & CurFile & "?ShowSub="
          Response.Write(Replace(Folder.Name, " ", "%20"))
          response.write "'>"
          Response.Write(Folder.Name & "</option>")
          If ShowSub <= " " Then
            ShowSub = Folder.Name
        End if
      End if
  Next
  Set objFSO = Nothing
  %>
  </select></td>
</tr>
<tr>
<td align="center" width="49%" height="1">
  </td>
<td align="center" width="12%" height="1">
</td>
</tr>
</table>

<%
If ShowPic > " " then
  ShowPic = Replace(ShowPic, " ", "%20")
Response.Write(ShowPic & "<br>")
  Response.Write "<a href='java script:history.go(-1)'><img border=1 src='" & ShowPic & "'><BR><BR><B><font size='2'>Tilbage til sidste side</font></B></a>"
Else
%>
  <table border="0" cellpadding="0" cellspacing="5" style="border-collapse: collapse" bordercolor="#000000" width="789" id="Pics1">
  <tr>
  <%
strPhysicalPath = "C:\webs\talkactive\web7910\2biaz.dk\upload" & "\" & ShowSub
Response.Write(strPhysicalPath & "<br>")
  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
    If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" OR Ucase(Right(objFileItem.Name,4))=".BMP" THEN
      ShowPic = Replace(objFileItem.Name, " ", "%20")
      Response.write "<td align='center' width='25%'><a href=" & CurFile & "?ShowPic=" & "upload\" & ShowSub  & "\" & ShowPic & ">"
      Response.Write("<img border=1 src='" & "upload\" & ShowSub & "\" & objFileItem.Name & "' width=100>")
      Response.Write("<p align='center'><b>" & Mid(objFileItem.Name,1,Len(objFileItem.Name)-4) & "</b>")
      Response.write "</a></td>"
      PictureNo = PictureNo + 1
      If PictureNo=4 Then
          Response.write "</tr><tr>"
          PictureNo = 0
      End if
    End if
    Next
    Set objFSO = Nothing
  End if
  %>
  </tr>
  </table>
<%
End if
%>

</body>
</html>
Avatar billede busschou Praktikant
02. marts 2005 - 08:07 #13
ovenstående virker hos mig. Jeg ved ikke hvordan du kører det om du simulerer det på din pc fremfor at lægge det ud ? Hvis jeg skal få den til at vise mine billeder på nettet så skal "\" der hvor den laver sit <img> rettes til "/"
Avatar billede busschou Praktikant
02. marts 2005 - 08:09 #14
der er vist forresten et par Response.Write som jeg ikke fik slettet men dem kan du bare slette - det var kun for at lure hvad den lavede :o)
Avatar billede w13 Novice
02. marts 2005 - 13:26 #15
MEGET genialt... Tak :)
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