perlboer has asked for the wisdom of the Perl Monks concerning the following question:
#!perl -w use strict; use CGI; use CGI qw(:standard); use CGI::Carp qw(warningsToBrowser fatalsToBrowser); my $cgi = new CGI(); my $url = "/cgi-bin/index/index-tp.pl"; my $docroot = "//NLHUB515025T/sh_robert/"; my $docdir = $cgi->param("Dir") || ""; print $cgi->header(); my $newStyle=<<END; <!-- body { font-size: 10pt; font-family: sans-serif; } --> END print $cgi->start_html(-title=>'Browse directory', -style=>{-code=>$newStyle} ); if (-d "$docroot$docdir") { chdir("$docroot$docdir") or die "Can't chdir to $docroot$docdir\n" +; opendir(DIR, "$docroot$docdir") or die "Can't open directory $docr +oot$docdir\n"; my @entries = grep({! /^\.{1,2}\z/} readdir(DIR)); closedir(DIR); my @dirs = grep({ -d } @entries); my @files = grep({ -f } @entries); my $dircount = $#dirs + 1; my $filecount = $#files + 1; my $dirhtml = ""; foreach (sort(@dirs)) { $dirhtml .= "[" . $cgi->a({href => "$url?Dir=$docdir/$_"}, $_) + . "] "; } if ($dircount > 0) { print $cgi->p($cgi->strong("Subdirectories of $docdir"), $cgi- +>br(), $cgi->span({style => "background-color : #dddddd"}, $dirhtml)) +; } if ($filecount > 0) { print $cgi->start_table({border => 0, cellspacing => 0, cellpa +dding => 0}); print $cgi->start_table({border => 0, cellspacing => 0, cellpa +dding => 0}); print $cgi->Tr($cgi->th({align => "left"}, [("Filename", "&nbs +p;Size", " Date", "Time")])); foreach (sort(@files)) { my $size = (stat($_))[7]; my $mtime = (stat(_))[9]; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $ +isdst) = localtime($mtime); my $date = sprintf(" %04d-%02d-%02d ", $year + 1 +900, $mon + 1, $mday); my $time = sprintf("%02d:%02d", $hour, $min); print $cgi->Tr($cgi->td($cgi->a({href => "$docdir/$_"}, "$ +_ ")), $cgi->td({align => "right"}, $size), $cgi->td([$date, $ti +me])); } print $cgi->end_table(); } print $cgi->p($cgi->em("Directories: ", $dircount, " -&n +bsp;Files: ", $filecount)); } print $cgi->end_html();
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: remote directory browsing give no listing
by Anonymous Monk on Oct 03, 2008 at 10:30 UTC | |
by Illuminatus (Curate) on Oct 03, 2008 at 14:48 UTC | |
| |
|
Re: remote directory browsing give no listing
by perlboer (Acolyte) on Oct 13, 2008 at 19:17 UTC |