#!/usr/bin/env perl use strict; use Carp; use Pod::Usage; =head1 NAME cgi-fileupload-manager.pl - a cgi script to display past and currently uploaded files, either for the curretn user or all (admin mode) =cut $|=1; # flush immediately; BEGIN{ eval{ require DefEnv; DefEnv::read(); }; } END{ } use CGI::FileUpload; use CGI::FileUpload::Manager; use CGI; use Time::localtime; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); #warningsToBrowser(1); my $query=new CGI; print $query->header; #TODO css with border in table and bit better... my $css; if(open (FH, "; close FH; } print $query->start_html(-title => 'CGI::FileUpload manager', -STYLE => {-verbatim => $css}, ); my $action=$query->param('action'); if (defined $action){ my @keys=$query->param('key'); if($action eq 'remove'){ foreach (@keys){ my $fu=CGI::FileUpload->new(key=>$_); $fu->remove(); } } } my $isAdmin=$query->param('admin'); my @fus=CGI::FileUpload::Manager::ls(); print < EOT if($isAdmin){ print " \n"; } print < EOT # TODO get creation time + set it coherent with sort my $id=CGI::FileUpload::idcookie(query=>$query)->{id}; foreach(@fus){ next unless $isAdmin || ($_->from_id() eq $id); my $status=$_->upload_status(); print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n" if $isAdmin; print " \n"; } print <
EOT print $query->end_html;
file date status size fromid
".$_->file_orig()."".(ctime((stat($_->file('.properties')))[9]))."$status".(($status eq 'completed')?(-s $_->file()):'n/a')."".$_->from_ipaddr()."".$_->from_id()."