[Perl] CGI_Lite.pmでファイル名取得できない
CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。
cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。
例
「可能性.txt」というファイルをアップすると、
「性.txt」というファイル名になります。
環境:
CGI_Lite.pmは、2つのバージョンを試してみました。
(1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm
(2), CGI_Lite 1.8 http://search.cpan.org/dist/CGI_Lite/
OSなど
(1), WindowsXP + AnHTTPd + Perl5.8.8
(2), SuSE Linux + Apache2.0 + Perl5.8.3
■アップするHTML
<html>
<form action='test.cgi' ENCTYPE='multipart/form-data' method='post'>
<input type="file" name="file1">
<input type="submit">
</form>
</html>
■アップされるCGI(test.cgi)
#!/usr/bin/perl
use CGI::Lite;
my $cgi=new CGI::Lite;
$cgi->add_timestamp(0);
$cgi->set_directory('./') or die $!;
$cgi->set_platform ('Unix');
$cgi->set_buffer_size (10000);
my %in = $cgi->parse_form_data();
print"Content-type: text/html\n\n";
print"-->$in{'file1'}\n";
以上、よろしくお願いします。
お礼
モジュールに手を加えるのは心配でしたが、 3箇所追加することにより、正しくアップロードできるようになりました。 ありがとうございました。