Avatar billede olav76 Nybegynder
20. april 2004 - 09:59 Der er 19 kommentarer og
1 løsning

Fil der linker til alle html-dokumenter i en mappe

Min kunde vil gerne have en side der automatisk linker til alle filer i en mappe. På denne måde kan han selv uploade f.eks. prøveplaner, og være sikker på at folk kan få fat i dem (løsningen minder lidt om den side der automatisk genereres hvis man skriver adressen til en mappe hvori der ikke er nogen index-fil – Det må bare meget gerne se lidt smartere ud!

Hvem kan hjælpe?
Avatar billede roenving Novice
20. april 2004 - 10:04 #1
Umiddelbart kan jeg kun komme på, at man appender et stylesheet til et window med mappe-indholdet, prøvet det har jeg ikke !-)
Avatar billede mm12010 Nybegynder
20. april 2004 - 10:04 #2
det skal laves serverside - har du asp?
Avatar billede tagman Nybegynder
20. april 2004 - 10:08 #3
Hvis du gerne vil lave en html-side med links på, så skal du bruge noget server side sprog.. og ellers så foreslår jeg, at du laver en anonymous FTP-login og linker til FTP-biblioteket. Så kan folk få en oversigt over filerne.

Du kan også give læse adgang til biblioteket og undlade at have en index.html eller lignende... for så vil din webserver bare liste fil-indholdet.
Avatar billede olav76 Nybegynder
20. april 2004 - 10:10 #4
Ja, serveren har asp.
(Jeg har dog kun meget begrænset forstand på asp)
Avatar billede olav76 Nybegynder
20. april 2004 - 10:23 #5
(tagman) Den med FTP-login duer nok ikke, da jeg derved ikke selv kan bestemme sidens udseende - og det samme gælder også den med at lade webserveren liste fil-indholdet.
Avatar billede mm12010 Nybegynder
20. april 2004 - 12:08 #6
Avatar billede olav76 Nybegynder
20. april 2004 - 12:18 #7
Ja, det ser faktisk meget fornuftigt ud. Hvordan laver jeg det?
Avatar billede roenving Novice
20. april 2004 - 12:19 #8
>>mm12010

Fine bilder du har i den mappe !-)
Avatar billede mm12010 Nybegynder
20. april 2004 - 12:32 #9
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<%
var oFSO=Server.CreateObject("Scripting.FileSystemObject");
var sRoot="/exp/html/gfx/";
var oFolder=oFSO.GetFolder(Server.MapPath(sRoot));

function kommaTal(b){
    tal=String(Math.round(b/1024*100)/100);
    tal=((tal.indexOf(".")==-1)?tal+",00":tal);
    tal=((tal.indexOf(".")==tal.length-2)?tal+"0":tal);
    tal=tal.replace(/\./gi,",");
    return (tal);
    }
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Fil der linker til alle html-dokumenter i en mappe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body, td, a {
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #000066;
}
#files {
    width:400px;
    border:2px solid black;
    margin:15px;
}
-->
</style>
</head>
<body>
<%
Response.Write("Files in Folder: <strong>\""+sRoot+"\"</strong>");
var eFile=new Enumerator(oFolder.Files);
Response.Write('<table cellspacing="0" cellpadding="2" id="files">');
Response.Write('<tr><td><strong><em>Filnavn</em></strong></td><td><strong><em>Strørrelse</em></strong></td><td><strong><em>Filtype</em></strong></td></tr>');
while(!eFile.atEnd()){
    var oFile=eFile.item();
        Response.Write('<tr><td><a href="'+sRoot+'/'+oFile.Name+'"><strong>'+oFile.Name+'</strong></a></td><td>'+kommaTal(oFile.Size)+'KB</td><td>'+oFile.Type+'</td></tr>');
    eFile.moveNext();
    }
Response.Write('</table>');
%>
</body>
</html>


roenving >> der kun billeder i den aktuelle mappe ;-) den tager alle filer i en given mappe, som det ønskes: "Min kunde vil gerne have en side der automatisk linker til alle filer i en mappe."

eller skal det kun være html-filer som det står i overskriften?-)
Avatar billede roenving Novice
20. april 2004 - 12:35 #10
>>mm12010

-- det var nu mest fordi jeg faktisk mente, at det var et udsøgt udvalg !-)
Avatar billede mm12010 Nybegynder
20. april 2004 - 12:36 #11
roenving >> sorry læste ikke ordentligt :-/ - ny kommentar: takker !-)
Avatar billede olav76 Nybegynder
20. april 2004 - 12:38 #12
Nej, det er fint nok med alle fil-formater.
Avatar billede olav76 Nybegynder
20. april 2004 - 13:31 #13
Der må være et eller andet galt… jeg har lavet en asp-fil (cut and paste af mm12010’s kode) og har uploadet den til serveren, men når jeg vil se den i browseren får jeg:

The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed.   

Please try the following:
&#61623; Click the Refresh button, or try again later.
&#61623; Open the www.madammangor.dk home page, and then look for links to the information you want.
HTTP 500.100 - Internal Server Error - ASP error
Apache/1.3.29 (Unix) Sun-ONE-ASP/4.0.0 mod_ssl/2.8.16 OpenSSL/0.9.6b FrontPage/5.0.2.2635 PHP/4.3.5 mod_throttle/3.1.2

Technical Information (for support personnel)
&#61623; Error Type:
Sun ONE ASP JavaScript runtime (0x80004001)
Procedure or property not implemented - ''
/fritz/test2.asp, line 43
&#61623; Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
&#61623; Page:
GET /fritz/test2.asp
&#61623; Time:
Tuesday, April 20, 2004, 1:26:10 PM
&#61623; More information:
Sun ONE Active Server Pages Support    


Jeg har prøvet at lave en anden asp-fil og den virker fint, så serveren kan altså godt køre asp!
Avatar billede mm12010 Nybegynder
20. april 2004 - 15:01 #14
prøv sådan:

<%
Response.Write("Files in Folder: <strong>\""+sRoot+"\"</strong>");
var eFile=new Enumerator(oFolder.Files);
Response.Write('<table cellspacing="0" cellpadding="2" id="files">');
Response.Write('<tr><td><strong><em>Filnavn</em></strong></td><td><strong><em>Strørrelse</em></strong></td><td><strong><em>Filtype</em></strong></td></tr>');
while(!eFile.atEnd()){
    var oFile=eFile.item();
        Response.Write('<tr><td><a href="'+sRoot+oFile.Name+'"><strong>'+oFile.Name+'</strong></a></td><td>'+kommaTal(oFile.Size)+'KB</td><td>'+oFile.Type+'</td></tr>');
    eFile.moveNext();
    }
Response.Write('</table>');
%>
Avatar billede olav76 Nybegynder
20. april 2004 - 15:20 #15
Filen ser nu sådan ud:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<%
var oFSO=Server.CreateObject("Scripting.FileSystemObject");
var sRoot="/fritz/";
var oFolder=oFSO.GetFolder(Server.MapPath(sRoot));

function kommaTal(b){
    tal=String(Math.round(b/1024*100)/100);
    tal=((tal.indexOf(".")==-1)?tal+",00":tal);
    tal=((tal.indexOf(".")==tal.length-2)?tal+"0":tal);
    tal=tal.replace(/\./gi,",");
    return (tal);
    }
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Fil der linker til alle html-dokumenter i en mappe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body, td, a {
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #000066;
}
#files {
    width:400px;
    border:2px solid black;
    margin:15px;
}
-->
</style>
</head>
<body>
<%
Response.Write("Files in Folder: <strong>\""+sRoot+"\"</strong>");
var eFile=new Enumerator(oFolder.Files);
Response.Write('<table cellspacing="0" cellpadding="2" id="files">');
Response.Write('<tr><td><strong><em>Filnavn</em></strong></td><td><strong><em>Strørrelse</em></strong></td><td><strong><em>Filtype</em></strong></td></tr>');
while(!eFile.atEnd()){
    var oFile=eFile.item();
        Response.Write('<tr><td><a href="'+sRoot+oFile.Name+'"><strong>'+oFile.Name+'</strong></a></td><td>'+kommaTal(oFile.Size)+'KB</td><td>'+oFile.Type+'</td></tr>');
    eFile.moveNext();
    }
Response.Write('</table>');
%>
</body>
</html>

----
Men det har ikke hjulpet - stadig samme fejlmelding!! :o(
Avatar billede olav76 Nybegynder
20. april 2004 - 15:24 #16
Som jeg skrev tidligere, har jeg smidt en test-fil op for at sikre mig at det virker - den ligger på http://www.madammangor.dk/fritz/test.asp
Avatar billede olav76 Nybegynder
20. april 2004 - 15:30 #17
Selve filen ligger på http://www.madammangor.dk/exp.asp
Avatar billede mm12010 Nybegynder
29. april 2004 - 14:56 #18
efter længere tids søgen har jeg fundet ud af, at det fordi fil-objektets egenskab 'type' ikke understøttes på UNIX: http://www.scit.wlv.ac.uk/appdocs/chili-asp/html/jscript_file_object_type_property.htm

derfor skal gennemløbet filerne se således ud:

while(!eFile.atEnd()){
    var oFile=eFile.item();
    Response.Write('<tr><td><a href="'+sRoot+oFile.Name+'"><strong>'+oFile.Name+'</strong></a></td><td>'+kommaTal(oFile.Size)+'KB</td><td>'+oFSO.GetExtensionName(oFile)+'</td></tr>');
    eFile.moveNext();
    }


har desværre ikke mulighed for at teste det på UNIX, men det virker fint på IIS

ex: http://www.uniquem.dk/exp/asp/491249.asp
Avatar billede olav76 Nybegynder
29. april 2004 - 22:08 #19
Perfekt - nu virker det!! :o)

Nu mangler jeg bare, at få links'ne sorteret således at den nyeste fil står øverst - kan det klares?
Avatar billede mm12010 Nybegynder
14. september 2005 - 12:00 #20
fandt du ud af det eller skal vi kigge på det igen?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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