![]() |
| カレッヂ |
質問者 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裏技 |