ファイルをサーバーにアップロードする CGI スクリプトを Perl で作成しました。スクリプトは完全に機能します。
my $upload_filehandle = $query->upload("config");
if (!$upload_filehandle)
{
die "Configuration file could not be loaded";
}
open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
問題は、ファイルをサーバーに保存するのではなく、その内容の一部を Perl スクリプトのいくつかの変数内に保存したいということです。これを行う方法がわかりません。代わりに次のコードを試しました。
my @array;
my $upload_filehandle = $query->upload("config");
if (!$upload_filehandle)
{
die "Configuration file could not be loaded";
}
open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle> )
{
push @array, $_;
}
close UPLOADFILE;
ファイルの内容を配列に保存したいのですが、エラーが発生します:
[Sat Aug 31 18:03:27 2013] [error] [client 127.0.0.1] malformed header from script. Bad header=\xff\xd8\xff\xe11\xdcExif: loadConfig.cgi, referer: http://localhost/cgi-bin/uploadFile.cgi
行にあると思い
push @array, $_;
ますが、ファイルのヘッダーが認識されていないことが原因である可能性があります。
ファイルを保存せずにファイルの内容を保存する方法について何かアイデアはありますか?
ご回答ありがとうございます。