$data = $q->param('param'); #### --mkGAOmWzlLaPNjkDQ57CNA9mUc6uoe1JMSRI Content-Disposition: form-data; name="mtdata"; filename="filename" Content-Type: application/octet-stream A whole lot of binary data --mkGAOmWzlLaPNjkDQ57CNA9mUc6uoe1JMSRI Content-Disposition: form-data; name="email" email address --mkGAOmWzlLaPNjkDQ57CNA9mUc6uoe1JMSRI Content-Disposition: form-data; name="mtfilename" file name --mkGAOmWzlLaPNjkDQ57CNA9mUc6uoe1JMSRI-- #### my $data = $query->param('POSTDATA'); #### $lightweight_fh = $q->upload('field_name'); # undef may be returned if it's not a valid file handle if (defined $lightweight_fh) { # Upgrade the handle to one compatible with IO::Handle: my $io_handle = $lightweight_fh->handle; open (OUTFILE,'>>','/usr/local/web/users/feedback'); while ($bytesread = $io_handle->read($buffer,1024)) { print OUTFILE $buffer; } }