Получение значений данных формы как нулевых в переменной%fdat в EmbPerl

Я получаю значения данных формы NULL в %fdat переменная в EmbPerl для загрузки файлов со свойством формы enctype="multipart/form-data",

Вот код EmbPerl:

if(( defined $fdat{file} && $fdat{file} ) && $fdat{upload} )
{
         $filename = "/tmp/sample.txt";
         open (FILE, "> $filename") || die("open failed: $!");
         while (read($fdat{file}, $buffer, 32768)) 
         {
             print FILE $buffer || die("print test: $!");
             close FILE || die("close test: $!");  
         }
}

И HTML-код это:

<form name="form1" method="post" enctype="multipart/form-data" onsubmit="return validation();">
 <table>
  <tr>   
    <td>Select EXCEL sheet</td>
    <td><input type="file" name="file" value=""></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="upload" value="upload"></td>
   </tr>
 </table>
</form>

Я использую EmbPerl/2.3.0, CGI/3.63, Perl/5.10.1, Apache/2.2.22 и ОС Linux.

1 ответ

Решение

Я получил решение.

Это был вопрос версии модуля CGI. Embperl использует CGI Внутренний модуль для обработки форм, закодированных с помощью multipart / form-data. вы можете получить имя файла (локальное имя файла, как это было на стороне браузера) и информацию, предоставленную CGI.pm uploadInfo функция. Проблема была исправлена ​​путем обновления версии CGI до 3.37.

Другие вопросы по тегам