iis+cgiでmultipart/form-data送信がうまくいかない
これまでLinux+Perl/CGIで構築していたWEBサーバをIIS+Perl/CGIに移す必要が生じ、新規にIISによるWEBサーバを構築しました。
一気にコンテンツを移動してもハマるだけだと考え、まずは簡単なコードを記述しCGIが動作するかどうかテストしています。
POSTによるinput type=textのデータ表示まではうまく行きましたが、ファイルアップロードのところで詰まりました。
IIS(Windows)によるWEBサーバの構築は初めてで、何が問題なのかサッパリわかりません。
どなたか問題点あるいはどこをチェックすれば良いかご指摘いただけませんでしょうか。
●やった事
PerlにてPOSTを利用しmultipart/form-dataにてファイルをアップロードするシンプルなコードを書き、第一段階としてMIMEエンコードされたものをブラウザ上に表示するしようとしてみた。
コードは最下方の通り。
●症状
送信を実行してもアップロード中のまま(ウィンドウマークが動き続けている)で、IISに設定してある10分程のタイムアウト時間を過ぎて終了してしまう。
TXT、XLS、DOCなどファイル種を変えて試しても全く同じ症状。
●環境:Windows2000ServerSP4 IIS5.0 Perl5.8.8
*******アップロード画面******
<HTML>
<HEAD>
<TITILE>ファイルのアップロード</TITLE>
</HEAD>
<BODY>
<FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
</HTML>
**********ここまで***********
*******CGI*******************
#!/perl/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
print "Content-type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>test</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"#ffffff\">\n";
print "$buffer";
print "</BODY>\n";
print "</HTML>\n";
exit;
********ここまで***********************
お礼
回答ありがとうございます。 fcloseではありませんが、fflushをやってみましたがだめでした。IIS7.0の設定の問題がある可能性が高いと思えてきました。