#!/usr/local/bin/perl use CGI qw(:standard); use CGI::Carp; print header(); print start_html("File Upload Example"); print strong("Version "),$CGI::VERSION,p; print h1("File Upload Example"), 'This example demonstrates how to prompt the remote user to select a remote file for uploading. ', strong("This feature only works with Netscape 2.0 browsers."), p, 'Select the ',cite('browser'),' button to choose a text file to upload. When you press the submit button, this script will count the number of lines, words, and characters in the file.'; @types = ('count lines','count words','count characters'); # Start a multipart form. print start_multipart_form(), "Enter the file to process:", filefield('filename','',45), br, checkbox_group('count',\@types,\@types), p, reset,submit('submit','Process File'), endform; # Process the form if there is a file name entered if ($file = param('filename')) { $tmpfile=tmpFileName($file); print hr(), h2($file), h3($tmpfile); my($lines,$words,$characters,@words) = (0,0,0,0); while (<$file>) { $lines++; $words += @words=split(/\s+/); $characters += length($_); } close $file; grep($stats{$_}++,param('count')); if (%stats) { print strong("Lines: "),$lines,br if $stats{'count lines'}; print strong("Words: "),$words,br if $stats{'count words'}; print strong("Characters: "),$characters,br if $stats{'count characters'}; } else { print strong("No statistics selected."); } } print hr(), a({href=>"../cgi_docs.html"},"CGI documentation"), hr, address( a({href=>'/~lstein'},"Lincoln D. Stein")), br, 'Last modified July 17, 1996', end_html;