Как вы получаете тип содержимого загруженного файла, используя CGI::Application?
Я пытаюсь обработать загруженный файл в программе Perl, используя CGI::Application. Мне нужно получить тип содержимого загруженного файла. Из того, что я прочитал, должно работать следующее, но это не для меня:
my $filename = $q->param("file");
my $contenttype = $q->uploadInfo($filename)->{'Content-Type'};
Как выясняется, $q->uploadInfo($filename)
возвращается undef
, Так же $q->uploadInfo("file")
,
Есть идеи?
Спасибо!
2 ответа
Вы доверяете тому, что загрузили, чтобы дать вам хороший тип контента? Я просто сохраняю загруженный файл на диск и делаю:
chomp(my $mime_type = qx!file -i $uploaded!);
$mime_type =~ s/^.*?: //;
$mime_type =~ s/;.*//;
хотя вы можете использовать File::Type, File::MMagic или File::MimeInfo.
Вы проверяете что-нибудь, что могло пойти не так?
Я получил этот точный код для работы просто отлично, но, глядя на это, он обернут в тест на $filename
быть undef, а также для чего-либо в $cgi->cgi_error()
, Мои воспоминания немного тусклые, но для этого должна была быть причина...