カレッヂ |
質問者 かんご
投稿日 6/24(火) 15:56:38
CGI.pm を使ってファイルのアップロードを実現しようとしてます。 ファイルのアップロード自体は問題ないのですが、アップロードw 行うと、CGI ファイル(xxx.pl)と同じディレクトリに、CGITemp????? (?は数字)と言うファイルが出来ます。 なお、CGI のソースは以下の通りです。 use CGI; $QUERY = new CGI; @SPLIT = (); @SPLIT = split(/\\/, $FILENAME); while(read($FILENAME, $LINE, 2048)) { $FILEBODY .= $LINE; } $FILENAME = $SPLIT[-1]; open(OUT, ">$TEMP_DIR/$FILENAME"); binmode(OUT); print OUT $FILEBODY; close(OUT); このファイルが出来ないようにしたいのですが、お知恵を拝借 できないでしょうか? よろしくお願いします。
プロバイダ参照:自宅 |
質問者 かんご
[削除]
投稿日 6/24(火) 17:48:50
自己レスです。 解決しました。Windows の場合、以下のread で$FILENAME を ファイルハンドラとして開いているため、明示的に閉じてあげる 必要があるそうです。 use CGI; $QUERY = new CGI; @SPLIT = (); @SPLIT = split(/\\/, $FILENAME); while(read($FILENAME, $LINE, 2048)) { $FILEBODY .= $LINE; } close($FILENAME); ~~~~~~~~~~~~~~~~~ $FILENAME = $SPLIT[-1]; open(OUT, ">$TEMP_DIR/$FILENAME"); binmode(OUT); print OUT $FILEBODY; close(OUT); なお、以下のページにこの件が記載されていました。 http://www.ss.iij4u.or.jp/~somali/web/_perl_upload.html |
このページは終了したので返信(回答)は書きこめません
Web裏技 |