プロが教える店舗&オフィスのセキュリティ対策術

ブラウザからファイルのアップロードを行うCGIを作ったのですが、
「警告:ページの有効期限切れ」と表示されます。
どうも<input type=file>でファイルを送信している場合に有効期限切れになるようです。

宜しくお願い致します。

A 回答 (3件)

おおさっぱ過ぎて回答が出来ません。


どのような場合に「有効期限切れ」と出るのかがわかりません。
CGIの該当部分のソースを開示できませんか?

この回答への補足

失礼しました、
HTMLファイルは
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>アップロード</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="mitumori.cgi" enctype="multipart/form-data">
<input type="file" name="upfile" size="55">
<INPUT type="submit" value="送信する">
</FORM>
</BODY>
</HTML>

CGIファイルは
#!/usr/local/bin/perl

require './cgi-lib.pl';

#フォームからのデータを受け取る
&ReadParse;

#ファイル名を指定する
$fnme = 'sample';

#拡張子部分を取出す為にデータの間処理を続ける
foreach $tmp (@in)
{
# 受信データの Content-type 部分から拡張子を探す
if ($tmp =~ /(.*)Content-type:(.*)/i)
{
if ($2 =~ /image\/jpeg/i) { $ext = '.jpg'; }
elsif ($2 =~ /image\/pjpeg/i) {$ext= '.jpg'; }
elsif ($2 =~ /image\/gif/i) { $ext = '.gif'; }
elsif ($2 =~ /image\/png/i) { $ext = '.png'; }
else { $ext = 'NO'; }
}
# 受信データの filename= 部分から拡張子を探す
elsif ($tmp =~ /(.*)filename=(.*)/i)
{
if ($2 =~ /\.jpg/i) { $ext = '.jpg'; }
elsif ($2 =~ /\.gif/i) { $ext = '.gif'; }
elsif ($2 =~ /\.png/i) { $ext = '.png'; }
else { $ext = 'NO'; }
}
}

#jpg gif png 以外ならエラーを出力する
if (($ext eq 'NO'))
{
$mes = '許可されていないファイル形式です。';
}
#許可されている拡張子なら書き込み処理をする
else
{
#ファイル名と拡張子を結合する
$fnme = $fnme . $ext;

# 受信データを書き込む
open OUT,">$fnme";
binmode OUT;
print OUT $in{'upfile'};
close OUT;

$mes = '書き込みが完了しました。';
}

#完了メッセージ
print <<"HTML";
Content-type: text/html

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY>
$mes
</BODY>
</HTML>
HTML
exit;
となっています、宜しくお願い致します。

補足日時:2007/07/28 19:15
    • good
    • 0

アップロードして、直ぐの表示で「有効期限切れ」などと出ることはあり得ないと思うのだけど?


どのブラウザを使って、どこにその表示が出ますか?
履歴から再度アップロード完了ページを表示させようとすれば、出るのは当たり前とか思うのですけどね。でなければ、データ送信が再度実行されてしまうので。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます、なんとか解決しました。

お礼日時:2007/08/05 06:52

キャッシュコントロールじゃないですか?


Expiresを数時間後に設定してみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

お返事有難う御座います。
何とか解決しました

お礼日時:2007/08/05 06:52

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