Да, CGI.pm в Perl может обрабатывать несколько файлов Firefox
Хотите увидеть? Используйте этот ярлык:
<code>use Data::Dumper;
print '<pre>', $CGIo->escapeHTML( Dumper( $CGIo ) ),'
';
Вы увидите что-то вроде:
$VAR1 = bless( {
'.parameters' => [
'filename',
'submit'
],
'use_tempfile' => 1,
'.tmpfiles' => {
'*Fh::fh00003temp-2.txt' => {
'info' => {
'Content-Type' => 'text/plain',
'Content-Disposition' => 'form-data; name="filename"; filename="temp-2.txt"'
},
'name' => bless( do{\(my $o = 'C:\\WINDOWS\\TEMP\\CGItemp52869')}, 'CGITempFile' ),
'hndl' => bless( \*{'Fh::fh00003temp-2.txt'}, 'Fh' )
},
'*Fh::fh00001temp-1.txt' => {
'info' => {
'Content-Type' => 'text/plain',
'Content-Disposition' => 'form-data; name="filename"; filename="temp-1.txt"'
},
'name' => bless( do{\(my $o = 'C:\\WINDOWS\\TEMP\\CGItemp52775')}, 'CGITempFile' ),
'hndl' => bless( \*{'Fh::fh00001temp-1.txt'}, 'Fh' )
}
},
'.charset' => 'ISO-8859-1',
'param' => {
'filename' => [
$VAR1->{'.tmpfiles'}{'*Fh::fh00001temp-1.txt'}{'hndl'},
$VAR1->{'.tmpfiles'}{'*Fh::fh00003temp-2.txt'}{'hndl'}
],
'submit' => [
'Process File'
]
},
'escape' => 1,
'.header_printed' => 1
}, 'CGI' );
Сначала вы вызываете поле загрузки файла File_Input, затем называете его множественными_файлами, затем называете его myfiles - вы должны использовать то же имя, это важно.
Кроме того, $ lightweight_fh и @lightweight_fh - две разные переменные, вам понадобится
for my $lightweight_fh ( $CGIo->upload('multiple_files') ){
my $io_handle = $lightweight_fh->handle;
...
}
Кроме того, вы пытаетесь открыть КАТАЛОГ '/ hidden_deliberately /' в виде файла и не проверяете наличие ошибок