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

間違っている可能性のあるものをチェックしていますか?

私はその正確なコードが問題なく動作するようにしましたが、それを見ると、それ$filenameは undef であることのテストにラップされており、$cgi->cgi_error(). 記憶が曖昧ですが、何か理由があったのでしょう...

于 2008-12-16T07:01:16.467 に答える