http://qs1969.pair.com?node_id=700763


in reply to CGI Form File Upload Read Problem

Maybe you should be working on the methods through an instance of CGI. This works for me: (with some more code in the midle, but this is the relevant part)

use CGI; my $q = CGI->new; my $fileHandle = $q->upload('file'); my $file = $q->param('file'); my ($buffer, $bytesread); my $newfile = "/path/to/file"; open FILE, ">$newfile"; while($bytesread = read($fileHandle, $buffer, 1024)) { print FILE $buffer; } close FILE;

Replies are listed 'Best First'.
Re^2: CGI Form File Upload Read Problem
by moritz (Cardinal) on Jul 29, 2008 at 10:13 UTC

    Sorry, I misread the code. Please ignore this post (or reap it, if you feel like).

    Whoa there, don't ever dare to recommend that again.

    Letting a user of a CGI script specify an arbitrary file name, and use that file to name write without any checks (and in the two argument form of open, to make things worse) is one of the scariest things you can do when writing CGI scripts.

    Even when you do some verification on the file name it's notoriously hard to get it right. I'd recommend to generate file names in your script, perhaps with File::Temp.