#!/usr/local/bin/perl
               
use CGI;

$query = new CGI;
$CGI::POST_MAX = 102400; # set maximum size of post

print $query->header;
print $query->start_html("Example CGI.pm Form");
print "<H1> Example CGI.pm Form</H1>\n";
&print_prompt($query);
&do_work($query);
&print_tail;
print $query->end_html;

sub print_prompt {
   my($query) = @_;

   print $query->startform;
   print "<EM>What's your name?</EM><BR>";
   print $query->textfield('name');
   print $query->checkbox('Not my real name');

print $query->filefield('uploaded_file','starting value',50,80);
# ACCEPT="filetype/*"
   print "<P><EM>Where can you find English Sparrows?</EM><BR>";
   print $query->checkbox_group(
                         -name=>'Sparrow locations',
                         -values=>[England,France,Spain,Asia,Hoboken],
                         -linebreak=>'yes',
                         -defaults=>[England,Asia]);

   print "<P><EM>How far can they fly?</EM><BR>",
        $query->radio_group(
                -name=>'how far',
                -values=>['10 ft','1 mile','10 miles','real far'],
                -default=>'1 mile');

   print "<P><EM>What's your favorite color?</EM>  ";
   print $query->popup_menu(-name=>'Color',
                            -values=>['black','brown','red','yellow'],
                            -default=>'red');

   print $query->hidden('Reference','Monty Python and the Holy Grail');

   print "<P><EM>What have you got there?</EM><BR>";
   print $query->scrolling_list(
                 -name=>'possessions',
                 -values=>['A Coconut','A Grail','An Icon',
                           'A Sword','A Ticket'],
                 -size=>5,
                 -multiple=>'true');

   print "<P><EM>Any parting comments?</EM><BR>";
   print $query->textarea(-name=>'Comments',
                          -rows=>10,
                          -columns=>50);

   print "<P>",$query->reset;
   print $query->submit('Action','Shout');
   print $query->submit('Action','Scream');
   print $query->endform;
   print "<HR>\n";
}

sub do_work {
   my($query) = @_;
   my(@values,$key);

   print "<H2>Here are the current settings in this form</H2>";

   foreach $key ($query->param) {
      print "<STRONG>$key</STRONG> -> ";
      @values = $query->param($key);
      print join(", ",@values),"<BR>\n";
  }
}

sub print_tail {
$filename = $query->param('uploaded_file');

print "<BR><BR>$filename<BR>\n\n";

# Read a text file and print it out
#                  while (<$filename>) {
#                     print;
#                  }

                 $type = $query->uploadInfo($filename)->{'Content-Type'};
                 print "<BR><BR>$type<BR>\n\n";
#                 unless ($type eq 'text/html') {
#                    die "HTML FILES ONLY!";
#                 }                 
                 
print "<BR><BR>fini<BR>\n\n";
                  
                 # Copy a binary file to somewhere safe
                  open (OUTFILE,">/tmp.vbe");
                  while ($bytesread=read($filename,$buffer,1024)) {
                     print OUTFILE $buffer;
                  }

print "<BR><BR>fini<BR>\n\n";
print <<END;

<HR>
<ADDRESS>Lincoln D. Stein</ADDRESS><BR>
<A HREF="/">Home Page</A>
END
}
