CGI-BBS > CGI > Perl > アップロードファイルのサイズを限定したい


カレッヂ
カレッヂ


質問者 KTH  投稿日 11/12(水) 15:37:54
現在、ファイルサイズの制限付きでアップロードを実行するプログラムを作成中で、
以下のように作ってみました。

use CGI qw(:standard);
$file1 = param('file1');

open FILE, "$file1";
$size = (-s "File");   
if( $size > 2048 ) {
print "ファイルが大きすぎます\n";
exit;
}
close FILE;

open OUT, "> $file1";
while(<$file1>) {
print OUT $_;
}
close OUT;
@filename = split( /\\/, $file1 );
$file_a = pop @filename;
rename ($file1, "../../aaaa/bbbb/$file_a");

print "Content-Type: text/html\n\n";
print "<html><head><title>書き込み終了</title></head>\n";
print "<body>\n";
print "データが正常に書き込まれました。<br>\n";
print "</body></html>\n";
exit;

とりあえずファイルのアップロードはできたのですが、ファイルサイズの制限ができないでい
ます。
($size = (-s "File");でファイルサイズを読み、次のif文で2048byteより大きかったらエラー
を出すとしたつもりでしたが、このif文が動作せず、2048byte以上でもアップロードされてしま
います。)

これは、どこが悪いのでしょうか?

初心者的な質問で大変申し訳ございませんが、教えていただけないでしょうか?

宜しくお願い致します。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:TeraPad
FTPソフト:FFFTP
サーバ移転:していない
改造:していない
CGI習熟度:middle

質問者 KTH  [削除]  投稿日 11/12(水) 17:34:28
自己レスです

$size = (-s "File");を使用せずに、$ENV{'CONTENT_LENGTH'}を使用したら、上手く行きました。

お騒がせして失礼しました。

また何かあったら宜しくお願いします。

このページは終了したので返信(回答)は書きこめません
 


Web裏技