source: for-distributions/trunk/bin/windows/perl/lib/CGI/eg/file_upload.cgi@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 2.0 KB
Line 
1#!/usr/local/bin/perl -w
2
3use strict 'refs';
4use lib '..';
5use CGI qw(:standard);
6use CGI::Carp qw/fatalsToBrowser/;
7
8print header();
9print start_html("File Upload Example");
10print strong("Version "),$CGI::VERSION,p;
11
12print 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
22my @types = ('count lines','count words','count characters');
23
24# Start a multipart form.
25print 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
35if (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
63print 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
Note: See TracBrowser for help on using the repository browser.