ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/lib/CGI/eg/diff_upload.cgi
Revision: 1.1
Committed: Thu Jun 30 14:27:09 2005 UTC (21 years, 4 months ago) by root
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #!/usr/local/bin/perl
2    
3     $DIFF = "/usr/bin/diff";
4     $PERL = "/usr/bin/perl";
5    
6     use CGI qw(:standard);
7     use CGI::Carp;
8    
9     print header;
10     print start_html("File Diff Example");
11     print "<strong>Version </strong>$CGI::VERSION<p>";
12    
13     print <<EOF;
14     <H1>File Diff Example</H1>
15     Enter two files. When you press "submit" their diff will be
16     produced.
17     EOF
18     ;
19    
20     # Start a multipart form.
21     print start_multipart_form;
22     print "File #1:",filefield(-name=>'file1',-size=>45),"<BR>\n";
23     print "File #2:",filefield(-name=>'file2',-size=>45),"<BR>\n";
24     print "Diff type: ",radio_group(-name=>'type',
25     -value=>['context','normal']),"<br>\n";
26     print reset,submit(-name=>'submit',-value=>'Do Diff');
27     print endform;
28    
29     # Process the form if there is a file name entered
30     $file1 = param('file1');
31     $file2 = param('file2');
32    
33     $|=1; # for buffering
34     if ($file1 && $file2) {
35     $realfile1 = tmpFileName($file1);
36     $realfile2 = tmpFileName($file2);
37     print "<HR>\n";
38     print "<H2>$file1 vs $file2</H2>\n";
39    
40     print "<PRE>\n";
41     $options = "-c" if param('type') eq 'context';
42     system "$DIFF $options $realfile1 $realfile2 | $PERL -pe 's/>/&gt;/g; s/</&lt;/g;'";
43     close $file1;
44     close $file2;
45     print "</PRE>\n";
46     }
47    
48     print <<EOF;
49     <HR>
50     <A HREF="../cgi_docs.html">CGI documentation</A>
51     <HR>
52     <ADDRESS>
53     <A HREF="/~lstein">Lincoln D. Stein</A>
54     </ADDRESS><BR>
55     Last modified 17 July 1996
56     EOF
57     ;
58     print end_html;
59    
60     sub sanitize {
61     my $name = shift;
62     my($safe) = $name=~/([a-zA-Z0-9._~#,]+)/;
63     unless ($safe) {
64     print "<strong>$name is not a valid Unix filename -- sorry</strong>";
65     exit 0;
66     }
67     return $safe;
68     }