Hi all, I am working on a cgi script that can create a temporal file with either an uploaded file, or, in its absence, the pasted content of that file. I have managed to upload the file only if that is the only input field in my form, but if I add the choice to paste the content of the file, there is no way I can successfully create the temporal file with the content of the uploaded file. I am including with this e-mail the html code of the form I am using together with the cgi script I am working on, and I will be very happy if someone could let me know why this thing is not working. Thanks.
Pedro HTML <html> <head> <html> <head> <title>test</title> </head> </head> <body bgcolor="#FFFFCD" link="#0000FF"> <center> <h1> <font size=+4>TEST</font></h1></center> <p><br> <p> <hr size="2" NOSHADE> <br><form method="POST" action="../../cgi-bin/variab.cgi" enctype="multiform/fo rm-data"> <table BORDER=2 > <tr><td> <p><b>Enter a name for your file:<br></b> <INPUT SIZE=25 NAME="name"> </p> </td></tr> <tr><td><p></p></td></tr> <tr><td> <p> <b>Upload your file</b><br> <input type="file" name="file" SIZE=30> </p></td></tr> <tr><td><p></p></td></tr> <tr><td> <p><b>Paste the content of your file</b> <textarea NAME="alignment" ROWS=10 COLS=80></textarea> </td></tr></p> </table> </form> <P><hr size="4"> </body> </html> CGI #!/usr/sbin/perl -wT use CGI; use strict; use Fcntl qw( :DEFAULT :flock); #define file paths for file writes and genscan location my $bin="/usr1/par/bin"; my $httproot = "/usr/freeware/apache/share/htdocs/MIF/icons/"; my $dir = "/tmp/"; #directory for writing files my $gnuplot = "/usr/freeware/bin/gnuplot"; my $ppmtogif = "/usr/freeware/bin/ppmtogif"; my $q = new CGI; print $q->header, $q->start_html(-title=>"Variability Results",-bgcolor=>"white"); print $q->h1("Variability Results"); my $in = $q->param("name"); my $file = $q->param("file"); my $fh = $q->upload( $file ); my $paste = $q->param("alignment"); my $i; my $flen; my $var = $^T; $in =~ s/\s\t//g; $in = $in.$var; if (!$file) { open(INFILE, ">$dir/$in") || die "I cannot create $in!\n"; flock(INFILE, 2); print INFILE "$paste"; close (INFILE) || die "can't close $dir/$in!"; } else { open(UPLOAD,">$dir/$in") or die "Can't open outfile for writing: $!"; $flen = 0; while (read($fh,$i,1024)) { print UPLOAD $i; $flen = $flen + 1024; if ($flen > 5120000) { close(UPLOAD); die "Error - file is too large. Save aborted.<p>"; } } close(UPLOAD); } $q->end_html; *************************************************************************** PEDRO A. RECHE , pHD TL: 617 632 3824 Dana-Farber Cancer Institute, FX: 617 632 4569 Harvard Medical School, EM: [EMAIL PROTECTED] 44 Binney Street, D1510A, EM: [EMAIL PROTECTED] Boston, MA 02115 URL: http://www.reche.org ***************************************************************************