1

对于带有表单属性的文件上传,我在变量中获取NULL表单数据值。%fdatEmbPerlenctype="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 操作系统。

4

1 回答 1

1

我得到了解决方案。

这是CGI模块版本的问题。EmbperlCGI在内部使用模块来处理使用 multipart/form-data 编码的表单。您可以检索文件名(本地文件名,因为它在浏览器端)和 CGI​​.pmuploadInfo函数提供的信息。通过将 CGI 版本升级到 3.37 解决了该问题。

于 2013-03-07T03:14:38.490 回答