カレッヂ |
質問者 dreamerYK
投稿日 2005/7/15(金) 17:25:56
こんにちは。連続での質問ですがよろしくお願いします。 テキストファイルのアップロードプログラムを作っていますが、以下のような現象になります。 【サーバOS】 windowsNT 4.0 【サーバソフト】 AN_HTTPD Ver1.42m 【アップロードソース(流用させていただいています)】 ※cgi-lite.pmを使用 sub file_upload{ use CGI::Lite; # ファイル保存ディレクトリ関連 my $dir = './upload_file'; unless (-d $dir) { mkdir $dir, 0777 or die $!; } # フォームデコード my $cgi=new CGI::Lite; $cgi->add_timestamp(0); $cgi->set_directory($dir) or die $!; $cgi->set_platform ('NT'); my %formdata = $cgi->parse_form_data; # 結果データ$result生成 my $result = ''; if (%formdata) { $result = "<hr>\n<table cellspacing=0 cellpadding=5 border=1>\n"; foreach (sort(keys(%formdata))) { $result .= "<tr><td>$_</td><td>$formdata{$_}</td></tr>\n"; } $result .= "</table>\n"; } # 出力 print "<!-- リスト -->\n"; print "<hr>\$list=$list<hr>\n"; print "<!-- アップロードフォーム -->\n"; print "<form action='./$thisfile' ENCTYPE='multipart/form-data' method='POST'>\n"; print "File : <input type='file' name='file'><input type='submit'>\n"; print "<input type='hidden' name='cmd' value='show_top'>\n"; #処理指標:sub file_uploadへ戻す処理 print "</form>\n"; print "<!-- 結果 -->\n"; print "$result\n"; } 【現象】 ・上記スクリプトで、保存先フォルダがない状態から実行させた場合、 正常にフォルダが作成されるのですが、肝心のテキストファイルがアップロードされません。 また、POSTでの受け渡しにおいて、処理指標にしているname=cmd、value=show_topの値が、 私の頭の中ではcmd=show_topになるはずが、cmd= になっている(値なし)ようです。 ENCTYPE='multipart/form-data'のフレーズを外すと、なぜか値がcmdに渡されます。 色々調べてみたんですが、どうもうまくいきません。 アップロードがうまくいかない原因と、cmdに値がわたらない原因があれば、 ご教授いただけますでしょうか? よろしくお願いします。
【習熟度】初めて |
回答者 LR
[削除]
投稿日 2005/8/5(金) 09:41:40
サーバーソフトを、Apacheに変更してみては? ANHTTPは不安定でおすすめできません。 アップロードのプログラムもためしに別のものを使用してみては? http://www.tryhp.net/perllib.htm |
返信(回答)する
Web裏技 |