home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / eg / cgi / file_upload.cgi < prev    next >
Text File  |  1999-07-20  |  2KB  |  72 lines

  1. #!/usr/local/bin/perl -w
  2.  
  3. use strict 'refs';
  4. use lib '..';
  5. use CGI qw(:standard);
  6. use CGI::Carp qw/fatalsToBrowser/;
  7.  
  8. print header();
  9. print start_html("File Upload Example");
  10. print strong("Version "),$CGI::VERSION,p;
  11.  
  12. print h1("File Upload Example"),
  13.     'This example demonstrates how to prompt the remote user to
  14.     select a remote file for uploading. ',
  15.     strong("This feature only works with Netscape 2.0 or greater, or IE 4.0 or greater."),
  16.     p,
  17.     'Select the ',cite('browser'),' button to choose a text file
  18.     to upload.  When you press the submit button, this script
  19.     will count the number of lines, words, and characters in
  20.     the file.';
  21.  
  22. my @types = ('count lines','count words','count characters');
  23.  
  24. # Start a multipart form.
  25. print start_multipart_form(),
  26.     "Enter the file to process:",
  27.     filefield('filename','',45),
  28.     br,
  29.     checkbox_group('count',\@types,\@types),
  30.     p,
  31.     reset,submit('submit','Process File'),
  32.     endform;
  33.  
  34. # Process the form if there is a file name entered
  35. if (my $file = param('filename')) {
  36.     my %stats;
  37.     my $tmpfile=tmpFileName($file);
  38.     my $mimetype = uploadInfo($file)->{'Content-Type'} || '';
  39.     print hr(),
  40.           h2($file),
  41.           h3($tmpfile),
  42.           h4("MIME Type:",em($mimetype));
  43.  
  44.     my($lines,$words,$characters,@words) = (0,0,0,0);
  45.     while (<$file>) {
  46.     $lines++;
  47.     $words += @words=split(/\s+/);
  48.     $characters += length($_);
  49.     }
  50.     close $file;
  51.     grep($stats{$_}++,param('count'));
  52.     if (%stats) {
  53.     print strong("Lines: "),$lines,br if $stats{'count lines'};
  54.     print strong("Words: "),$words,br if $stats{'count words'};
  55.     print strong("Characters: "),$characters,br if $stats{'count characters'};
  56.     } else {
  57.     print strong("No statistics selected.");
  58.     }
  59. }
  60.  
  61. # print cite("URL parameters: "),url_param();
  62.  
  63. print hr(),
  64.     a({href=>"../cgi_docs.html"},"CGI documentation"),
  65.     hr,
  66.     address(
  67.         a({href=>'/~lstein'},"Lincoln D. Stein")),
  68.     br,
  69.     'Last modified July 17, 1996',
  70.     end_html;
  71.  
  72.