#! /usr/bin/perl -w use strict 'refs'; use lib '..'; use CGI qw(:standard); use CGI::Carp qw/fatalsToBrowser/; use File::Copy; $apandir = "/mnt/apan/2003"; $subdir1 = "/abstracts"; $subdir2 = "/presentations"; $debug = 1; $logfile = "/home/apan/public_html/fukuoka/program/uploadlog.txt"; $to = "masaki\@qgpop.net,kasahara\@nc.kyushu-u.ac.jp"; $conference = "APAN 2003 Conference in Fukuoka"; $mailprog = "mail -s \"Submission to $conference\" $to"; $date = `date +%Y%m%d-%H%M%S`; chop ($date); $date2 = `date +\"%Y/%m/%d %H:%M:%S\"`; chop ($date2); $query = new CGI; print $query->header (), $query->start_html (-title=>"$conference Upload Page"), $query->h2 ("$conference Upload Page"); print $query->address($query->a ({href=> "http://www.qgpop.net/2003fukuoka/submission.html"}, "Session & Presentation Instructions")); print $query->start_multipart_form(), "Session ID: ", $query->scrolling_list (-name=>'session', -values=>['UNKNOWN', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'NRW1', 'NRW2', 'NR1', 'NR2', 'NR3', 'NR4', 'NR5', 'NR6', 'NR7', 'NR8', 'NR9', 'EDU1', 'EDU2', 'EDU3', 'NET1', 'NET2', 'NET3', 'HEP', 'RET', 'Plenary', "CONF", ], -default=>'UNKNOWN', -size=>1), $query->br, "Speaker # in the session: ", $query->scrolling_list (-name=>'number', -values=>['UNKNOWN', '1', '2', '3', '4', '5', '6', '7', '8', '9', ], -default=>'UNKNOWN', -size=>1), $query->br, "Your name: ", $query->textfield (-name=>'name', -size=>40), $query->br, "Your e-mail address: ", $query->textfield (-name=>'address', -size=>50), $query->br, "Filename to upload: ", $query->filefield (-name=>'filename', -size=>60), $query->br, "Comment: ", $query->textfield (-name=>'comment', -size=>60, -maxsize=>255), $query->br, $query->checkbox (-name=>'abstract', -value=>"Yes", -checked=>0), ": check here if you are submitting an abstract", $query->br, $query->checkbox (-name=>'update', -value=>"Yes", -checked=>0), ": check here if you are updating your file already submitted", $query->p, $query->submit(-name=>'submit'), $query->endform; if (my $pathname = $query->param ('filename')) { my $filename = $pathname; my $error = 0; print $query->hr; if ($query->param ('name') eq "") { print $query->strong ("please enter you name"), $query->br; $error++; } if ($query->param ('address') eq "") { print $query->strong ("please enter you e-mail address"), $query->br; $error++; } if (!$error) { if ($filename =~ /([^\/\\:]+)$/) { $filename = $1; } my $ext = ""; if ($filename =~ /\.([^.]+)$/) { $ext = $1; } my $update = $query->param ('update'); my $name = $query->param ('session') .'-'. $query->param ('number'); $name = "$name.$ext" if ($ext); if ($query->param ('session') eq "UNKNOWN" || $query->param ('number') eq "UNKNOWN") { $update = 1; } my $write_file = $apandir . ($query->param ('abstract')? $subdir1 : $subdir2) . "/" . $name; print $write_file, $query->br if $debug; if (-e $write_file && !$update) { print $query->strong ("Filename exist: $name."), $query->br, $query->strong ("Check the update box and submit again"), $query->br; } else { my $buff; my $bytes; my $size = 0; my $succeeded = "Succeeded"; if (-e $write_file) { rename ($write_file, "$write_file.$date"); $succeeded = "Updated"; } open (FD, ">$write_file") || die "$!"; binmode FD; while ($bytes = read ($pathname, $buff, 1024)) { $size += $bytes; print FD $buff; } close (FD); print $query->strong ("$succeeded: $name by $filename ($size bytes)"), $query->br; open (LOG, ">>$logfile") || die "$logfile: $!"; print LOG "Date: ", $date2, "\n", "Session: ", $query->param ('session'), "\n", "Number: ", $query->param ('number'), "\n", "Filename: ", $name, " by ", $filename, "\n", "Name: ", $query->param ('name'), "\n", "E-Mail: ", $query->param ('address'), "\n", "Abstract: ", $query->param ('abstract'), "\n", "Status: ", $succeeded, "\n", "Comment: ", $query->param ('comment'), "\n", "\n"; close (LOG); open (MAIL, "|$mailprog") || die "mailprog: $!"; print MAIL "Date: ", $date2, "\n", "Session: ", $query->param ('session'), "\n", "Number: ", $query->param ('number'), "\n", "Filename: ", $name, " by ", $filename, "\n", "Name: ", $query->param ('name'), "\n", "E-Mail: ", $query->param ('address'), "\n", "Abstract: ", $query->param ('abstract'), "\n", "Status: ", $succeeded, "\n", "Comment: ", $query->param ('comment'), "\n", "\n"; close (MAIL); } } } print $query->hr (), $query->address($query->a ({href=>"mailto:fukuoka-program\@apan.net"}, "$conference Program Committee")), $query->address ($query->a ({href=> "http://www.qgpop.net/2003fukuoka/program.html"}, "$conference Program")), $query->address ($query->a ({href=>"http://www.pac.ne.jp/apan/"}, "$conference")), $query->address ($query->a ({href=>"http://www.apan.net"}, "APAN Home Page")), $query->end_html; exit 0;