Commit | Line | Data |
---|---|---|
920dae64 AT |
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 |