#!/usr/bin/perl $mailprog = '/usr/lib/sendmail'; print "content-type: text/html\n\n"; if ($ENV{'REQUEST_METHOD'} eq 'GET') { # Split the name-value pairs @pairs = split(/&/, $ENV{'QUERY_STRING'}); foreach $pair (@pairs) {($name,$value) = split(/=/,$pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $FORM{$name} = $value;} } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name,$value) = split(/=/,$pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; if ($name eq "multiple") { push (@multifiles, $value); } else { $FORM{$name} = $value;} } } $action = $FORM{'action'}; $file = $FORM{'file'}; $fname = $FORM{'name'}; $dir = $FORM{'dir'}; $email = $FORM{'email'}; &main_routine; &check_files; exit; sub main_routine { print < ** BEAMER READY **

WTV-Zone

Personal File Beamer
Version 2.0

File Manager Auto-Login


EOM } sub check_files { if ($action eq "go") { &single_beam; } elsif ($action eq "multiple") { &multiple_beam } else { print <
Last URL:
File URL:
Directory:
New name:
Created By Perlwiz and Iceman
Multi-File Beamer Interface by Mandrake
EOM } } sub single_beam { if ($dir ne "") { if (-e $dir) { @response = `cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; print " Done!!
"; foreach $i (@response) { print " $i
"; } } else { @responce = `mkdir $dir; chmod 777 $dir; cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; print "
Done!!
"; foreach $i (@response) { print "Done! $i
"; } } } else { $Response = `lwp-mirror $file $fname; ls $fname 2>&1`; print $Response; print " Done!! "; if ($Response eq "") { print "
Done!"; } } } sub multiple_beam { print("
Files are being transferred.....

"); if ($email ne "") { print("A confirmation email will be sent to $email when the transfer is complete."); &send_confirm; exit; } &move_files; exit; } sub move_files { foreach $file (@multifiles) { $x = rindex($file, "/"); $fname = substr($file, $x +1); if ($dir ne "") { if (-e $dir) { @response = `cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; } else { @responce = `mkdir $dir; chmod 777 $dir; cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; } } else { $Response = `lwp-mirror $file $fname; ls $fname 2>&1`; } } } sub send_confirm { open(MAIL,"|$mailprog -t"); print MAIL "To: $email\n"; print MAIL "From: notify\@wtv-zone.com"; print MAIL " (File Beamer)\n"; print MAIL "Subject: Status report...\n\n"; print MAIL "Your files transfer request was completed. Here is "; print MAIL "a status report per each file:\n"; print MAIL "-" x 68.; print MAIL "\n"; foreach $file (@multifiles) { $x = rindex($file, "/"); $fname = substr($file, $x +1); if ($dir ne "") { if (-e $dir) { @response = `cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; print MAIL "$file\nDone.\n"; foreach $i (@response) { print MAIL "$i\n\n"; } } else { @responce = `mkdir $dir; chmod 777 $dir; cd $dir; lwp-mirror $file $fname; ls $fname 2>&1`; print MAIL "$file\nDone.\n"; foreach $i (@response) { print MAIL "$i\n\n"; } } } else { $Response = `lwp-mirror $file $fname; ls $fname 2>&1`; print MAIL "$file\nDone.\n"; print $Response; if ($Response eq "") { print MAIL "\nSuccessful!\n\n"; } } } print MAIL "-" x 68.; close(MAIL); }