Avatar billede skarvenneverdies Nybegynder
07. januar 2005 - 15:44 Der er 28 kommentarer og
1 løsning

List filer fra folder som links

Hejsa jeg søger et script eller en komplet asp side der kan kigge i en folder, og se hvilke filer der er i folderen, hvorefter, der på siden, laves en liste med filnavnene

Filnavnene skal listes uden filefternavn

Hvert filnavn skal være et link der åbner/linker til, den pågældene fil

På forhånd mange tak.....
Avatar billede mortency Nybegynder
07. januar 2005 - 15:46 #1
Avatar billede mortency Nybegynder
07. januar 2005 - 15:50 #2
<HTML>
<HEAD>
</HEAD>
<BODY>
<% 
Whichfolder = Server.Mappath("images")

Dim fs, f, f1, fc 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(Whichfolder) 
Set fc = f.files

For Each f1 in fc 
Response.write (<a href='" & f1.name & "'>" & f1.name & "</a>") 
Next 
%>
</BODY>
</HTML>
Avatar billede mortency Nybegynder
07. januar 2005 - 15:54 #3
Sorry!

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
'Her kan du skrive inn stien.
Whichfolder = Server.Mappath("../")

Dim fs, f, f1, fc 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(Whichfolder) 
Set fc = f.files

For Each f1 in fc 
Response.write ("<a href='" & f1.name & "'>" & f1.name & "</a><br>") 
Next 
%>
</BODY>
</HTML>
Avatar billede skarvenneverdies Nybegynder
07. januar 2005 - 16:14 #4
Det er ligesom om siden aldrig bliver loaded eller som om den er i en løkke....

jeg har asp filen med din kode liggende i roden af sitet
og mappen den skal kigge i ligger også i roden af sitet - den hedder upload

skal jeg så ikke bare skrive:
Whichfolder = Server.Mappath("upload")
Avatar billede mortency Nybegynder
07. januar 2005 - 16:53 #5
Er det mange filer i mappen "upload" ?

Post all koden så kan jeg sjekke. Eller prøv scriptet i en egen fil.
Avatar billede w13 Novice
07. januar 2005 - 17:29 #6
Ellers så prøv med denne:
(Du skal kun rette "FOLDERENS-NAVN-HER")
<%
dim fs,fo,x
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("FOLDERENS-NAVN-HER")for each f in fo.files
  'Print the name of all files in the test folder
  Response.write(f.Name & "<br>")
nextset fo=nothing
set fs=nothing
%>
Avatar billede w13 Novice
07. januar 2005 - 17:29 #7
Hov... Lige en fejl...
<%
dim fs,fo,f
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("FOLDERENS-NAVN-HER")for each f in fo.files
  'Print the name of all files in the test folder
  Response.write(f.Name & "<br>")
nextset fo=nothing
set fs=nothing
%>
Avatar billede thesurfer Nybegynder
07. januar 2005 - 17:31 #8
w13> Du må godt bruge flere linier :-)

set fo=fs.GetFolder("FOLDERENS-NAVN-HER")for each f in fo.files

og

nextset fo=nothing
Avatar billede w13 Novice
07. januar 2005 - 17:36 #9
(Pis...) =) Var lige for hurtig der...
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 04:33 #10
Ok dette er hvad jeg sidst har prøvet:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
dim fs,fo,f
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("FOLDERENS-NAVN-HER")for each f in fo.files
Response.write(f.Name & "<br>")
nextset fo=nothing
set fs=nothing
%>
</BODY>
</HTML>
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 04:35 #11
dog med "FOLDERENS-NAVN-HER" rettet til "upload"
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 04:35 #12
derefter får jeg denne fejl:

Microsoft JScript compilation error '800a03ec'

Expected ';'

/hr/side5.asp, line 8

dim fs,fo,f
----^
Avatar billede w13 Novice
08. januar 2005 - 09:21 #13
Ja, du må undskylde, men jeg glemte at skifte linje. Koen skal være sådan:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
dim fs,fo,f
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("upload")
for each f in fo.files
Response.write(f.Name & "<br>")
next
set fo=nothing
set fs=nothing
%>
</BODY>
</HTML>
Avatar billede w13 Novice
08. januar 2005 - 09:22 #14
("Koen" = naturligvis "Koden" ;-)
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 12:19 #15
øv den siger stadig:

Microsoft JScript compilation error '800a03ec'

Expected ';'

/hr/side5.asp, line 8

dim fs,fo,f;
----^
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 16:14 #16
Nu har jeg fundet dette - og det virker.... er der en der kan lave det om så det ikke viser filefternavnet - alstå kun fornavnet!

<html>
<head>
<title></title>

</head>
<body>

<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
  <td align="center" width="15%">
</td>
<td align="left" width="85%">
  <h3>Vælg fil :</h3>
  <%
  sti = "upload"
  ShowSub = sti & request("ShowSub")
  ShowSubLink = request("ShowSub")
  strPathInfo = ShowSub
 
  strPhysicalPath = Server.MapPath(strPathInfo)

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(strPhysicalPath)


  Set objFSO = Nothing
  %>
  </td>
</tr>
</table>
<hr>

<table border="0" cellpadding="0" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111" width="90%" id="AutoNumber1">
<%
'Response.Write ShowSub  & "<br>"
'Response.Write strPhysicalPath
'Response.End

  SiteName = request.servervariables("script_name")
  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
      ShowPic = Replace(objFileItem.Name, " ", "%20")
      Response.write "<tr><td>"
      Response.Write "<a href=""upload/" & objFileItem.Name &""">" & objFileItem.Name  & "</a>"
     
      Response.write "</td></tr>"
    Next
    Set objFSO = Nothing
  End if
  %>
 
  </table>

</center>
</html>
Avatar billede thesurfer Nybegynder
08. januar 2005 - 18:33 #17
Mht ";":

Du har jo linien <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> som siger, at du vil bruge JavaScript, men du bruger VBScript.

I JavaSript bruger man "var" til at definere variabler, og ";" når man har afsluttet en linie (hvis der kommer flere linier).
Avatar billede thesurfer Nybegynder
08. januar 2005 - 18:35 #18
Ang filnavnet:
Filenavnet, uden endelsen, er jo filnavnet fra venstre og til det sidste ".".

Derfor:

Left(objFileItem.Name, InStrRev(objFileItem.Name, "."))

Som i:

Response.Write "<a href=""upload/" & objFileItem.Name &""">" & Left(objFileItem.Name, InStrRev(objFileItem.Name, "."))  & "</a>"

Der skal muligvis stå "- 1":

Left(objFileItem.Name, InStrRev(objFileItem.Name, ".") - 1)

Test det.
Avatar billede thesurfer Nybegynder
08. januar 2005 - 18:37 #19
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 19:05 #20
thesurfer du er super - det virker med -1 ....  lækkerier
Avatar billede skarvenneverdies Nybegynder
08. januar 2005 - 19:09 #21
Så kan jeg vidst godt lukke - scriptet fandt jeg fra et andet E spørgsmål:

http://eksperten.dk/spm/355313

Læg et svar gutter - så kan I alle dele
Avatar billede thesurfer Nybegynder
08. januar 2005 - 19:20 #22
Ingen points til mig, tak.
Avatar billede w13 Novice
08. januar 2005 - 21:12 #23
Jeg har vist ikke bidraget med noget, du ku' bruge... Ta' du dem selv =)
Avatar billede steen_hansen Forsker
08. januar 2005 - 21:16 #24
Hvis du vil have en hel færdig side:

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

<%

    Dim CurFile, PopFileShowSub, ShowPic, PictureNo
    Dim strPathInfo, strPhysicalPath

    Dim intTotPics, intPicsPerRow, intPicsPerPage, intTotPages, intPage, strPicArray()
    intPicsPerRow  = 1
    intPicsPerPage = 6

    intPage = CInt(Request.QueryString("Page"))
    If intPage = 0 Then
        intPage = 1
    End If

    CurFile = "default.asp"
    PopFile = "showpicture.asp"

%>

<html>

<head>
<title>Fotoalbum</title>
<META HTTP-EQUIV="Expires" CONTENT="Fri, Jun 12 1981 08:20:00 GMT">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="content-type" content="text/html;charset=iso-8859-1">
<META HTTP-EQUIV="imagetoolbar" content="no">
<META HTTP-EQUIV="Content-language" content="dan">
<META NAME="robots" content="all">
<link rel="stylesheet" type="text/css" href="/includes/style.css">
<script language="JavaScript">
<!--
function jumppage(sel)
{
  var i = sel.selectedIndex
  self.location.href = sel.options[i].value
}
// -->
</script>
<script language="JavaScript">
<!-- hide from JavaScript-challenged browsers
function openGalleryWindow(url) {
    if (document.all)
        var xMax = screen.width, yMax = screen.height;
    else
        if (document.layers)
            var xMax = window.outerWidth, yMax = window.outerHeight;
        else
            var xMax = 800, yMax=600;
    var xOffset = (xMax - 200)/2, yOffset = (yMax - 200)/2;
    var xOffset = 100, yOffset = 100;

    popupWin = window.open(url,'new_page','width=700,height=535,screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+',scrollbars=auto,toolbars=no,menubar=no,resizable=yes')
}
// done hiding -->
</script>
</head>

<body>

<div align="center">
    <table cellpadding="0" cellspacing="0" style="width: 755px;" class="text11">
        <tr>
            <td colspan="2" style="width: 755px; height: 80px;"><span class="h22">Billeder</span></td>
        </tr>
        <tr>
            <td style="width: 160px; padding: 8px 8px 0px 8px;" align="left" valign="top"><b>Menu</b></td>
            <td style="width: 595px;" align="left" valign="top">
                <div align="center">
                    <form action=<%=PopFile%> method="POST">
                    <table cellpadding="0" cellspacing="0" style=" border: 0px; width: 100%;" id="AutoNumber1" class="text11">
                        <tr>
                            <td align="left">
                                <b>Vælg fotoalbum:</b>
                                <select name="go" onChange="jumppage(this);" size=1 class="input1">

                                <%

                                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>
                    </table>
                    </form>

                    <%
                    If ShowPic > " " Then
                        ShowPic = Replace(ShowPic, " ", "%20")
                    %>

                    <a href="java script:history.go(-1)"><img src="<%=ShowPic%>" alt=""><br><br><b>Tilbage</b></a>

                    <% Else %>

                    <table cellspacing="4" style="width: 100%;" id="AutoNumber1" class="text11">
                        <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

                        'Get the number of pictures in the subdirectory
                        intTotPics = 0
                        For Each objFileItem in objFolderContents
                            If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN
                                intTotPics = intTotPics + 1
                            End If
                        Next

                        'Get the total number of pages in the subdirectory
                        If (intTotPics/intPicsPerPage) = (int(intTotPics/intPicsPerPage)) Then
                            intTotPages = int(intTotPics/intPicsPerPage)
                        Else
                            intTotPages = int(intTotPics/intPicsPerPage)+1
                        End If

                        Redim strPicArray(2,intTotPics) 'Store picture file names in an array
                        x = 0
                        For Each objFileItem in objFolderContents
                        If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN
                            strPicArray(0,x) = objFileItem.Name
                            strPicArray(1,x) = Cstr(int(x/intPicsPerPage)+1)
                            x = x + 1
                        End If
                        Next

                        If intTotPages > 1 Then
                            Response.Write "<td colspan='" & intPicsPerRow & "' valign='top' align='left'>Side:&nbsp;&nbsp;&nbsp;"
                        For x = 1 to intTotPages
                        If x = intPage Then
                            Response.Write "<b>" & x & "</b>&nbsp;&nbsp;&nbsp;&nbsp;"
                        Else
                            Response.Write "<a href='default.asp?Page=" & x & "&ShowSub=" & ShowSub & "'>" & x & "</a>&nbsp;&nbsp;&nbsp;&nbsp;"
                        End If
                        Next

                            %></td>
                        </tr>
                        <tr>

                        <%

                        End If

                        Dim bgcolor
                        bgcolor = "#ececd9;"

                        For x = 0 to UBound(strPicArray,2)-1
                        If CInt(strPicArray(1,x)) = intPage Then
                            ShowPic = Replace(strPicArray(0,x), " ", "%20")

                            If bgcolor="#ececd9" Then
                                bgcolor = "#e7e7e7"
                            Else
                                bgcolor = "#ececd9"
                            End if

                        %>

                            <td valign="top" align="left" style="background-color: <%=bgcolor%>; width: 75%;">
                                <b>Det er ikke muligt at vedhæfte billedtekst i øjeblikket</b><br>
                                Navn på fil angiver dato
                            </td>
                            <td align="center" valign="top" style="width: 25%; background-color: <%=bgcolor%>;">

                        <%

                            Response.write "<a href=""java script:openGalleryWindow('" & PopFile & "?ShowPic=" & ShowSub & "/" & ShowPic & "')"""
                            Response.write "<br>"
                            Response.Write("<img src='" & ShowSub & "/" & strPicArray(0,x) & "' width=150> ")
                            Response.Write("<br><b>" & Mid(strPicArray(0,x),1,Len(strPicArray(0,x))-4) & "</b>")
                            Response.write "</a></td>" & vbcrlf

                            PictureNo = PictureNo + 1

                            If PictureNo=intPicsPerRow Then
                        %>

                        </tr>
                        <tr>

                        <%

                            PictureNo = 0
                        End if
                        End If

                        Next

                        Set objFSO = Nothing
                        End If

                        %>

                        </tr>
                    </table>

                    <% End If %>

                </div>
            </td>
        </tr>
    </table>
</div>
</body>

</html>
Avatar billede steen_hansen Forsker
08. januar 2005 - 21:18 #25
Og showpicture.asp


<html>

<head>
<title>Fotoalbum</title>
<META HTTP-EQUIV="Expires" CONTENT="Fri, Jun 12 1981 08:20:00 GMT">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="content-type" content="text/html;charset=iso-8859-1">
<META HTTP-EQUIV="imagetoolbar" content="no">
<META HTTP-EQUIV="Content-language" content="dan">
<META NAME="robots" content="all">
<link rel="stylesheet" type="text/css" href="/includes/style.css">
<script language="JavaScript" type="text/JavaScript">

<!-- Begin
var isNav4, isIE4;
if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
isNav4 = (navigator.appName == "Netscape") ? 1 : 0;
isIE4 = (navigator.appName.indexOf("Microsoft") != -1) ? 1 : 0;
}
function fitWindowSize() {
if (isNav4) {
window.innerWidth = document.layers[0].document.images[0].width;
window.innerHeight = document.layers[0].document.images[0].height;
}
if (isIE4) {
window.resizeTo(800, 600);
width = (800 - (document.body.clientWidth -  document.images[0].width)) + 25;
height = (600 - (document.body.clientHeight -  document.images[0].height)) + 55;
window.resizeTo(width, height);
  }
}
//  End -->
</script>
</head>

<body onLoad="fitWindowSize()">

<%

    ShowPic = request("ShowPic")
    ShowPic = Replace(ShowPic, " ", "%20")

%>

    <div align="center">
        <img src="<%=ShowPic%>" border="2"><br><br>
        <a href="java script:onClick= window.close();"><b>Luk vinduet</b></a>
    </div>
    <br><br>

</body>

</html>
Avatar billede skarvenneverdies Nybegynder
10. januar 2005 - 12:37 #26
Er der andre der skal med i points-ræset ?
Avatar billede steen_hansen Forsker
10. januar 2005 - 15:02 #27
Nej, ellers tak :)
Avatar billede skarvenneverdies Nybegynder
10. januar 2005 - 15:35 #28
OK - tak for hjælpen.... der lukkes

nyt spørgsmål - samme emne:

http://www.eksperten.dk/spm/579154
Avatar billede andreas_og_far Praktikant
15. januar 2005 - 18:50 #29
Hej Skarvenneverdies

Må jeg have lov at se dit færdige script ?? Jeg står nemlig og skal bruge det samme, men har lidt svært ved at gennemskue dig og thesurfers korrespondance.....

På forhånd mange tak for hjælpen ;-)
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