如何将PHP上传文件脚本转换为Perl?

时间:2009-07-12 20:56:16

标签: php perl cgi

在PHP中,我有以下代码获取通过CGI提交的文件:

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)

该文件正在

发送
Content-Disposition: form-data; name="userfile"; filename="filename"
Content-Type: application/octet-stream

正在上传的文件属于PNG。

如何访问$ _FILES通过perl获取的数据?

我可以使用CGI.pm和

$query->upload("filename");

但是如何获取标题“Content-Disposition”部分中的数据?

1 个答案:

答案 0 :(得分:2)

引用doc

  

当文件上传时,浏览器通常会以标题格式发送一些信息。该信息通常包括MIME内容类型。未来的浏览器也可以发送其他信息(例如修改日期和大小)。要检索此信息,请调用uploadInfo()。它返回对包含所有文档头的哈希的引用。

   $filename = param('uploaded_file');
   $type = uploadInfo($filename)->{'Content-Type'};
   unless ($type eq 'text/html') {
      die "HTML FILES ONLY!";
   }

虽然param()也应该返回文件名(也可以作为文件句柄使用,但是不推荐使用,而且应该使用upload())。