Avatar billede bodyguard Nybegynder
24. juni 2005 - 08:07 Der er 15 kommentarer og
1 løsning

Vis indhold af mappe

Hejsa

Jeg har et script som trænger til at blive fornyet lidt.

<%
folder = Server.Mappath("../web/images/uploaded/")

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folder)

Set fc = f.Files
%>
              <SELECT class=dropdown style="WIDTH: 150px" onchange="_Format(Editor1,'insertImage',this.options[this.selectedIndex].value);this.selectedIndex=0;">
              <OPTION value=Images selected>Diverse Billeder</OPTION>
<%
For Each f1 in fc
response.write f1.name & "<option value='../web/images/uploaded/" & f1.name & "'>" & f1.name & "</option>"
Next
%>
</SELECT>


Scriptet her henter alle billeder i en bestemt mappe. Jeg søger et script som henter alle billeder fra mappen "Uploaded/" og scriptet skal også medtage under mapper.

Jeg vil gerne have at strukturen i SELECT boksen er sådan her:

[BILLEDER]
-> UNDER MAPPE#1 (fed skrift, Uppercase)
-- billedefil.jpg
-- billedefil.bmp
-- billedefil.gif

-> UNDER MAPPE#1 (fed skrift, Uppercase)
-- billedefil.jpg
-- billedefil.bmp
-- billedefil.gif

Håber der er en frisk sjæl :)
Avatar billede bodyguard Nybegynder
24. juni 2005 - 08:07 #1
*MAPPE#2
Avatar billede goose Nybegynder
24. juni 2005 - 08:56 #2
Den skulle være her bortset fra du ikke kan bruge fed skrift i select bokse:

<%
Set myFso = Server.CreateObject("Scripting.FileSystemObject")

Set myFolder = myFso.GetFolder(Server.MapPath("/Uploaded"))

Set SubFolders = myFolder.SubFolders


response.write "<select>"
For Each folder in subFolders
Response.Write "<option>" & ucase(folder.Name) & "</option>"

Set myFso2 = Server.CreateObject("Scripting.FileSystemObject")
set myFolder2 = myFso2.GetFolder(Server.MapPath("/Uploaded/" & folder.Name))
Set files = myFolder2.files

For Each file in files
    Response.Write "<option> -------> " & file.Name & "</option>"
Next
Set files = Nothing
Set myFolder2 = Nothing
Set myFso2 = Nothing

Next

Set myFolder = Nothing
Set myFso = Nothing
response.write "</select>"
%>

/Goose
Avatar billede bodyguard Nybegynder
24. juni 2005 - 09:52 #3
Der mangler lige at i option skal der ligges value ind med den fulde sti ...
Avatar billede goose Nybegynder
24. juni 2005 - 10:10 #4
<%
Set myFso = Server.CreateObject("Scripting.FileSystemObject")

Set myFolder = myFso.GetFolder(Server.MapPath("/Uploaded"))

Set SubFolders = myFolder.SubFolders


response.write "<select>"
For Each folder in subFolders
Response.Write "<option>" & ucase(folder.Name) & "</option>"

Set myFso2 = Server.CreateObject("Scripting.FileSystemObject")
set myFolder2 = myFso2.GetFolder(Server.MapPath("/Uploaded/" & folder.Name))
Set files = myFolder2.files

For Each file in files
    Response.Write "<option value=""/Uploaded/"& folder.Name &"/"& file.Name &"""> -------> " & file.Name & "</option>"
Next
Set files = Nothing
Set myFolder2 = Nothing
Set myFso2 = Nothing

Next

Set myFolder = Nothing
Set myFso = Nothing
response.write "</select>"
%>

/Goose
Avatar billede freakstyle Nybegynder
24. juni 2005 - 18:02 #5
Du kan lave en optgroup hvis du gerne vil have fed skrift til overskrifterne.
http://www.w3schools.com/tags/tag_optgroup.asp
Avatar billede softspot Forsker
25. juni 2005 - 01:04 #6
Her er et foreslag i en rekursiv udgave (som tager alle underkataloger):

<%@ language="vbscript" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >

<html>
  <head>
    <title>Eksempel på generering af katalogstruktur</title>
  </head>
  <body>
   
    <form id="Form1" method="post">
<%
Sub RecurseDir(objFolder)
    response.write "<optgroup label=""" & objFolder.name & """>" & vbCrLf
    For Each f in objFolder.Files
        response.write "<option value=""" & objFolder.path & "\" & f.name & """>" & f.name & vbCrLf
    Next
    response.write "</optgroup>"
       
    For Each f in objFolder.SubFolders
        RecurseDir(f)
    next
End Sub

scriptName = Request.ServerVariables("SCRIPT_NAME")
pathEnd = instrrev(scriptName,"/")
baseFolder = left(scriptName, pathEnd)
path = Server.Mappath(baseFolder)

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(path)

%>
      <SELECT class=dropdown style="WIDTH: 150px" onchange="_Format(Editor1,'insertImage',this.options[this.selectedIndex].value);this.selectedIndex=0;">
    <OPTGROUP Label="Diverse Billeder">
<%
RecurseDir(f)
set fso = nothing
%>
    </OPTGROUP>
      </SELECT>
    </form>
   
  </body>
</html>
Avatar billede bodyguard Nybegynder
06. juli 2005 - 15:56 #7
softspot>

Kan du lave en funktion så at man kan definere en sti? jeg vil nemlig gerne have indholdet af: ../Uploads/

er det muligt at definere hvilke typer af filer man vil have vist?
Avatar billede softspot Forsker
03. oktober 2005 - 22:06 #8
Mht. at definere hvilken sti du vil vise filer for, kan du bare ændre variablen baseFolder til f.eks.:

baseFolder = "../Uploads/"

I nedenstående kode har jeg ændret funktionaliteten således den muliggør filtrering på extensions (du angiver en semikolonsepareret streng af extension som må fremgå af dropdown listen):

<%@ language="vbscript" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>Eksempel på generering af katalogstruktur</title>
  </head>
  <body>
   
    <form id="Form1" method="post">
<%
Sub RecurseDir(objFolder, strFilter)
  dim objFldr, strOptions, strOptGroup, iExtPos, f, fls, fldrs, strExt

  set objFldr = objFolder
  on error resume next
  set fls = objFolder.Files
  if err.number = 0 then
    For Each f in fls
      iExtPos = InStrRev(f.name, ".")
      If iExtPos > 0 and iExtPos < len(f.name) Then
        strExt = Right(f.name, len(f.name) - iExtPos)
        ' Hvis aktuelle extension eksisterer i filterlisten,
        ' så kan den medtages i dropdownlisten
        If InStr(1, ";" & strFilter & ";", ";" & strExt & ";") > 0 Then
          strOptions = strOptions & "<option value=""" & objFolder.path & "\" & f.name & """>" & f.name & "</option>" & vbCrLf
        End If
      End If
    Next
  end if
  on error goto 0

  ' Vis kun gruppen hvis der er nogle filer i den
  if len(strOptions) > 0 then
    strOptGroup = "<optgroup label=""" & objFolder.name & """>" & vbCrLf
    Response.Write strOptGroup & strOptions & "</optgroup>"
  end if

  on error resume next
  set fldrs = objFldr.SubFolders
  if err.number = 0 then
    For Each f in fldrs
      RecurseDir f, strFilter
    Next
  end if
  on error goto 0
End Sub


baseFolder = "../uploads/"
'scriptName = Request.ServerVariables("SCRIPT_NAME")
'pathEnd = instrrev(scriptName,"/")
baseFolder = left(scriptName, pathEnd)
path = Server.Mappath(baseFolder)

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(path)

%>
      <select class=dropdown style="width:150px" onchange="_Format(Editor1,'insertImage',this.options[this.selectedIndex].value);this.selectedIndex=0;">
        <optgroup label="Diverse Billeder">
<%
RecurseDir f, "jpg;jpeg;gif"
set fso = nothing
%>
        </optgroup>
      </select>
    </form>
  </body>
</html>
Avatar billede bodyguard Nybegynder
05. oktober 2005 - 20:15 #9
Lille fejl:
**************

Server.MapPath() error 'ASP 0171 : 80004005

Missing Path

/www/admin/includes/cms_top.asp, line 155

The Path parameter must be specified for the MapPath method.
Avatar billede softspot Forsker
05. oktober 2005 - 20:26 #10
prøv lige at fjerne den linie hvor der står

baseFolder = left(scriptName, pathEnd)
Avatar billede bodyguard Nybegynder
05. oktober 2005 - 20:28 #11
Jeg har kigget på det og ændret dette:
****************************************

baseFolder = "../uploads/"
scriptName = Request.ServerVariables("SCRIPT_NAME")
pathEnd = instrrev(scriptName,"/")
'baseFolder = left(scriptName, pathEnd)
path = Server.Mappath(baseFolder)

Problemet er bare at billedet får denne sti:
../uploads/D:\web\makhosting.dk\tpradio\www\uploads\TPradio\Henning/PR924.jpg
Avatar billede bodyguard Nybegynder
05. oktober 2005 - 20:46 #12
Er det svært at ordne det sti problem?
Avatar billede softspot Forsker
05. oktober 2005 - 21:13 #13
Næh, jeg tror jeg har en løsning her:

<%@ language="vbscript" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>Eksempel på generering af katalogstruktur</title>
  </head>
  <body>
   
    <form id="Form1" method="post">
<%
Sub RecurseDir(objFolder, strFilter, strPhysicalPath, strVirtualPath)
  dim objFldr, strOptions, strOptGroup, iExtPos, f, fls, fldrs, strExt

  set objFldr = objFolder
  on error resume next
  set fls = objFolder.Files
  if err.number = 0 then
    For Each f in fls
      iExtPos = InStrRev(f.name, ".")
      If iExtPos > 0 and iExtPos < len(f.name) Then
        strExt = Right(f.name, len(f.name) - iExtPos)
        ' Hvis aktuelle extension eksisterer i filterlisten,
        ' så kan den medtages i dropdownlisten
        If InStr(1, ";" & strFilter & ";", ";" & strExt & ";") > 0 Then
          strFilePath = replace(replace(objFolder.path, strPhysicalPath, strVirtualPath,1,-1,vbTextCompare),"\","/")
          strOptions = strOptions & "<option value=""" & strFilePath & "/" & f.name & """>" & f.name & "</option>" & vbCrLf
        End If
      End If
    Next
  end if
  on error goto 0

  ' Vis kun gruppen hvis der er nogle filer i den
  if len(strOptions) > 0 then
    strOptGroup = "<optgroup label=""" & objFolder.name & """>" & vbCrLf
    Response.Write strOptGroup & strOptions & "</optgroup>"
  end if

  on error resume next
  set fldrs = objFldr.SubFolders
  if err.number = 0 then
    For Each f in fldrs
      RecurseDir f, strFilter, strPhysicalPath, strVirtualPath
    Next
  end if
  on error goto 0
End Sub


baseFolder = "../uploads/"
'scriptName = Request.ServerVariables("SCRIPT_NAME")
'pathEnd = instrrev(scriptName,"/")
'baseFolder = left(scriptName, pathEnd)
path = Server.Mappath(baseFolder) & "\"

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(path)

%>
      <SELECT class=dropdown style="WIDTH: 150px" onchange="_Format(Editor1,'insertImage',this.options[this.selectedIndex].value);this.selectedIndex=0;">
<%
if not f is nothing then
  RecurseDir f, "jpg;jpeg;gif", path, baseFolder
end if
set fso = nothing
%>
          </SELECT>
    </form>
   
  </body>
</html>
Avatar billede bodyguard Nybegynder
05. oktober 2005 - 21:37 #14
Uhhh det virker :)

Kan jeg ikke få dig til at lægge et svar :)
Avatar billede softspot Forsker
05. oktober 2005 - 21:40 #15
Ja da! :D
Avatar billede softspot Forsker
05. oktober 2005 - 23:22 #16
Tak for point :)
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