Hi,
I'm trying to upload a file, and then process the contents of the file. Mostly this works fine, but in some cases, the results on the page are incorrect. It prints the processed filename correctly, but the processed contents are the contents from a previously uploaded file.
Any ideas where it goes wrong ?
Thanks!
Rianne
use CGI qw/:standard -private_tempfiles/;
use Text::CSV;
use Fcntl qw( :DEFAULT :flock );
use constant UPLOAD_DIR => "/tmp";
use constant BUFFER_SIZE => 16_384;
use constant MAX_FILE_SIZE => 50*1_048_576; # Limit each upload
+ to 50 MB
use constant MAX_DIR_SIZE => 100 * 1_048_576; # Limit total uploads
+to 100 MB
use constant MAX_OPEN_TRIES => 100;
$CGI::DISABLE_UPLOADS = 0;
$CGI::POST_MAX = MAX_FILE_SIZE;
my $q = new CGI;
$q->cgi_error and error( $q, "Error transferring file: " . $q->cgi_err
+or );
#Some other stuff here
print $q->header( "text/html", -expires => "-1s" ),
+
$q->start_html( -title => "Wordcloud Generator", -bgcolor => "#f
+fffff", -head=>$q->meta({-http_equiv => 'Pragma',
-content => 'no-cache'})
+),
$q->h2( "Wordcloud Generator" ),
$q->hr,
$q->p("Processed file:", $file);
my $in = $q->upload( "file" );
my $csv = Text::CSV->new ({ binary => 1, eol => $/, sep_char => "\t" }
+);
my $header = "1";
my $numcolumns;
while(my $line = <$in>)
{
if($csv->parse($line))
{
my @row = $csv->fields();
#processing the file