upload.pl
changeset 15 38a3e4aa59c0
parent 14 5a22524e7261
child 16 a4a87929803f
child 20 c1e9c225237b
equal deleted inserted replaced
14:5a22524e7261 15:38a3e4aa59c0
    24 use strict;
    24 use strict;
    25 use warnings;
    25 use warnings;
    26 use CGI qw(:all *table);
    26 use CGI qw(:all *table);
    27 use CGI::Carp qw(fatalsToBrowser);
    27 use CGI::Carp qw(fatalsToBrowser);
    28 use CGI::Pretty;
    28 use CGI::Pretty;
       
    29 use IO::File;
    29 use File::Basename;
    30 use File::Basename;
    30 use Digest::MD5 qw(md5_hex);
    31 use Digest::MD5 qw(md5_hex);
    31 use OSSP::uuid;
    32 use OSSP::uuid;
    32 
    33 
    33 my $DIR     = "d/{view}";
    34 my $DIR     = "d/{view}";
    34 my $DIR_URI = url(-absolute => 1) . "/$DIR";
    35 my $DIR_URI = "/$DIR";
    35 
    36 
    36 sub human($);
    37 sub human($);
    37 
    38 
    38 delete @ENV{ grep /PATH/, keys %ENV };
    39 delete @ENV{ grep /PATH/, keys %ENV };
    39 $ENV{PATH} = "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin";
    40 $ENV{PATH} = "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin";
    65         exit 0;
    66         exit 0;
    66     }
    67     }
    67 
    68 
    68     print header(-charset => "UTF-8"),
    69     print header(-charset => "UTF-8"),
    69       start_html(-title => "Up&Down"),
    70       start_html(-title => "Up&Down"),
    70       h1("Ansicht: $ENV{REMOTE_USER}"),
    71       h1 "Ansicht: $ENV{REMOTE_USER}";
    71 	  "dir: ", url(-absolute => 1);
       
    72 
    72 
    73     # print Dump;
    73     # print Dump;
    74 
    74 
    75     if (length(my $file = param("upload"))) {
    75     if (length(my $file = param("upload"))) {
    76         my $days = param("expires");
    76         my $days = param("expires");
    87         $filename =~ /(.*)/;
    87         $filename =~ /(.*)/;
    88         $filename = $1;
    88         $filename = $1;
    89 
    89 
    90         my $dir = "$DIR/$uuid-$expires";
    90         my $dir = "$DIR/$uuid-$expires";
    91         mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n";
    91         mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n";
    92         open(my $outfh, ">", "$dir/$filename")
    92         my $outfh = new IO::File ">$dir/$filename"
    93           or die "Can't create $dir/$filename: $!\n";
    93           or die "Can't create $dir/$filename: $!\n";
    94         print {$outfh} <$file>;
    94         print {$outfh} <$file>;
    95 
    95 
    96         if (open(my $atfh, "|-", "at now + $days days")) {
    96         if (my $atfh = new IO::File("|at now + $days days")) {
    97             print {$atfh}
    97             print {$atfh}
    98               "rm -f \"$dir/$filename\"\n",
    98               "rm -f \"$dir/$filename\"\n",
    99               "rmdir \"$dir\"\n";
    99               "rmdir \"$dir\"\n";
   100             close $atfh;
   100             close $atfh;
   101 			#system("cat /tmp/log");
   101             system("cat /tmp/log");
   102         }
   102         }
   103 
   103 
   104     }
   104     }
   105     print hr;
   105     print hr;
   106 
   106