#!/usr/bin/perl -w use strict 'refs'; use lib '..'; use CGI qw(:standard); use CGI::Carp qw/fatalsToBrowser/; 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 or greater, or IE 4.0 or greater."), 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.'; my @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 (my $file = param('filename')) { my %stats; my $tmpfile=tmpFileName($file); my $mimetype = uploadInfo($file)->{'Content-Type'} || ''; print hr(), h2($file), h3($tmpfile), h4("MIME Type:",em($mimetype)); 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 cite("URL parameters: "),url_param(); 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;