http://www.perlmonks.org?node_id=105021

Siddartha has asked for the wisdom of the Perl Monks concerning the following question:

I am writing a script to upload files to a server usinf CGI.pm.

My problem is that the parameters doesn't get passed to the cgi if I use the start_multipart_form method.

When I just use start_form(), everything works fine, except the file doesn't want to upload. As soon as I change it to start_multipart_form(), none of the name/value pairs gets sent, or I am not reading them correctly.

Snippet from form script:

print $query->start_multipart_form('POST','upload.cgi');
print $query->filefield('upload_file','',30,80);
print $query->submit("Upload");
print $query->endform();

Snippet from upload.cgi:

use CGI qw/:standard/;

$| = 1;

$query = new CGI;

$month = $query->param("month");
$year = $query->param("year");
$magazine = $query->param("magazine");

When I print these values, they are all undefined. When I change the form encoding by using startform(), everything works perfectly but I can't upload the file.

I have searched everywhere, but can't seem to find anything.

Please help

-Siddartha