2

我正在尝试使用 CGI::Application 在 Perl 程序中处理上传的文件。我需要获取上传文件的内容类型。根据我的阅读,以下内容应该有效,但不适用于我:

my $filename = $q->param("file");
my $contenttype = $q->uploadInfo($filename)->{'Content-Type'};

事实证明,$q->uploadInfo($filename)返回undef. 也是如此$q->uploadInfo("file")

有任何想法吗?

谢谢!

4

2 回答 2

5

您相信上传的任何内容都能为您提供良好的内容类型吗?我只是将上传的文件保存到磁盘并执行以下操作:

chomp(my $mime_type = qx!file -i $uploaded!);
$mime_type =~ s/^.*?: //;
$mime_type =~ s/;.*//;

尽管您可以改用 File::Type、File::MMagic 或 File::MimeInfo。

于 2008-12-16T02:51:50.853 回答
1

您是否正在检查任何可能出错的地方?

我得到了可以正常工作的确切代码,但是看着它,它被包含在一个测试中,用于测试$filenameundef 以及$cgi->cgi_error(). 我的记忆有些模糊,但一定是有原因的……

于 2008-12-16T07:01:16.467 回答