When the form is processed, you can retrieve an IO::Handle compatibile handle for a file upload field like this:
$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;
}
}
In a list context, upload() will return an array of filehandles. This makes it possible to process forms that use the same name for multiple upload fields.
####
use CGI qw(:standard);
####
$lightweight_fh = 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,">>/home/path/to/upload_loc");
while ($bytesread = $io_handle->read($buffer,1024)) {
print OUTFILE $buffer;
}
}
####
use IO::Handle;
####
Undefined subroutine Fh::handle