Thread Ausgabe in Array oder String (9 answers)
Opened by kerstenk at 2004-06-18 01:11

format_c
 2004-06-18 23:34
#83569 #83569
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
So hier wie versprochen ein kleines schlichtes CGI-Programm was online alle Archvdateien eines Verzeichnisses listet, welche über ein Dropdownfeld auswählbar sind und dann die enthaltenen Datenen angezeigt werden.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw/:all/;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use Archive::Tar;
use FindBin;

# Verzeichnis wo sich die Archive befinden
my $dir = $FindBin::Bin . '/../archives/';

if (param('file')) {print auslesen(param('file'));}
else {print anzeigen();}


sub anzeigen {

# Verzeichnis auslesen und in Hash für CGI speichern
opendir DIR,$dir or die "Konnte Verzeichnis $dir nicht öffnen: $!";
my @files = grep !/^\.\.?$/ && /(?:\.tgz|\.tar|\.tar.gz)$/i,readdir DIR;
closedir DIR;

# HTTP-Header und HTML-Code ausgeben
return header(),
start_html(-title=>'Archivanzeige'),
h2('Archivanzeige'),
start_form(-action=>url(-relative=>1),-method=>'GET'),
scrolling_list(-name=>'file',
-size=>1,
-values=>[ sort @files ],
-default=>param('file') || ''
),
submit(-value=>'Dateien anzeigen'),
end_form,
end_html;
} #sub

sub auslesen {
# Parameter holen
my $file = shift || '';
# Anzeigeroutine wenn Parameter leer
return anzeigen() unless $file;
my $tar = Archive::Tar->new();
$tar->read($dir . $file,1) or die "Konnte Archiv $dir$file nicht lesen:$!";

#HTTP-Header und HTML-Code ausgeben
return header(),
start_html(-title=>'Archivanzeige - Dateilisting'),
h2("Folgende Dateien sind im Archiv $file enthalten:"),
join br(),sort $tar->list_files(),
a({-href=>url(-relative=>1)},"Zurück"),
end_html;

}# sub


exit;


Gruß Alex\n\n

<!--EDIT|format_c|1087587567-->

View full thread Ausgabe in Array oder String