Получение значений данных формы как нулевых в переменной%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> </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.