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