Verzeichnisstruktur abbilden
Sven
- cgi
Hallo SELFHTML-Gemeinde !!!
Wieder einmal muß ich mich an euch wenden, weil ich einfach nicht mehr weiter weiß.
Ich arbeite auf einem Unix-Server mit Apache und Samba.
Nun soll ich auf der Homepage eine Funktionalität einbauen, die mir einen Verzeichnisbaum zeigt (der dem File-Server-Verzeichnisbaum entspricht) - das hab ich hinbekommen.
Nun soll beim Anklicken eines Verzeichnisses im linken Frame, im rechten Frame alle Dateien in diesem Verzeichnis angezeigt werden und das mit einige Zusatzinformationen wie Größe, Typ usw.
Gibt es da evtl. schon ein vorgefertigtes Modul oder kann mir jemand da weiterhelfen, weil ich leider noch nicht so weit in die Perl/GI-Welt vorgedrungen bin.
Würd mich freuen, wenn mir da jemand unter die Arme greifen könnte.
Gruß Sven
Hallo Sven,
guck mal hier:http://cgi.xwolf.com/perl/autoindex.txt oder auch hier:http://www.i-netlab.de/knowman/index.htm, da ist ein funktionierendes Beispiel...
Viele Grüße, Rolf
Hi,
Nun soll beim Anklicken eines Verzeichnisses im linken Frame, im rechten Frame alle Dateien in diesem Verzeichnis angezeigt werden und das mit einige Zusatzinformationen wie Größe, Typ usw.
<a href="script.pl?showdir=/path/to/dir" target="rechts">/path/to/dir</a>
Gibt es da evtl. schon ein vorgefertigtes Modul oder kann mir jemand da weiterhelfen, weil ich leider noch nicht so weit in die Perl/GI-Welt vorgedrungen bin.
perldoc -f opendir
perldoc -f readdir
perldoc -f closedir
perldoc CGI
Kurzfassung (ungetestet):
#!/usr/bin/perl -w
use strict;
use CGI ':standard';
print header;
opendir(DIR, param('showdir')) or die "Kann ".param('showdir')." nicht oeffnen: $!";
print while (readdir DIR);
closedir(DIR);
Cheatah
Hi Cheatah !!!
Danke für den Tip.
Hat zwar kurz gedauert bis ich gemerkt habe, daß man das
use strict;
rauslassen muß, aber jetzt läuft‚s mit:
#!/usr/bin/perl -w
use CGI qw(:standard :html3);
print header, start_html('Files');
opendir(DIR, param('showdir')) die "Could not open directory.";
print "<H1>Files from ",param('showdir'),".</H1>";
while ($name = readdir(DIR))
{
print "$name";
print "<br>";
}
closedir(DIR);
print "</BODY></HTML>";
Vielen Dank.
Sven
Hi,
Hat zwar kurz gedauert bis ich gemerkt habe, daß man das
use strict;
rauslassen muß, aber jetzt läuft‚s mit:
nö, muß man nicht. Wenn es Dir eine Fehlermeldung ausspuckt, solltest Du dieser nachgehen, denn dann hast Du irgendetwas zumindest "unschön" gemacht.
Was hat Dir strict denn gesagt?
while ($name = readdir(DIR))
while (my $name = readdir(DIR))
print "$name";
print $name;
Oder aber gleich
print "$name<br>";
Aber bitte nicht einzelne Variablen mit Doublequotes umgeben. Das ist, als würdest Du ein eingepacktes Geschenk noch einmal in Geschenkpapier einwickeln - es kostet nur Zeit :-)
Cheatah