プロが教えるわが家の防犯対策術!

本日、同じ質問をしたものです。
前回の問題は解決したのですが、ファイルがアップロードできないで悩んでします。

CGIのプログラムは以下のソースです。

#! c:/perl/bin/perl

use CGI;
# CGIヘッダーの出力
print "Content-type: text/html\n\n";

my ($query,$fileName);
$query = new CGI;
$fileName = $query->param('fileName');

open(OUT, ">./a.csv");
binmode(OUT);
while(read($fileName,$buffer,1024))
{
print OUT $buffer;
}

close(OUT);
close($fileName); #ファイルハンドルをcloseしています。

exit ;

ファイルは、作られるのですが、中身が書き込まれません。

どなたか教えてください。

お願いします。

A 回答 (1件)

$fileName = $query->param('fileName');


で取得できるのはアップロードしたときのファイル名で、CGI.pmはそのファイル名とは別の名前でサーバ上に一時ファイルを作ります。

$query->upload()で一時ファイルのファイルハンドラを取得し、ファイルの内容を読み出します。
$fh = $query->upload('fileName');
read($fhe,$buffer,1024);
...
    • good
    • 5
この回答へのお礼

御礼が遅くなり申し訳ありません

おっしゃる通りにやってみましたところ、できました。

ありがとうございました。

お礼日時:2011/04/26 08:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!