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

<HTML>
<BODY>
<FORM action="searchai.cgi" enctype="multipart/form-data" method="post">
<INPUT type="file" name="upload_file" size="32"><BR>
<INPUT type="submit" value="送信">
</FORM>
</BODY>
</HTML>
で受け取ったデータを指定のファイル名でサーバーのディレクトリにアップロードしたいです。
#! /usr/bin/perl

print "Content-type:text/html\n\n";

print << "END_OF_HTML";
<HTML>
<BODY>
END_OF_HTML

use CGI;
$query = new CGI;

# ファイル名の取得
$filename = $query->param('upload_file');
# MIMEタイプの取得
$type = $query->uploadInfo($filename)->{'Content-Type'};

# ファイルの受け取り
while($bytesread = read($filename, $buffer, 2048)) {
$file .= $buffer;
}

# ファイルの保存
open(OUT, "> ./tmp.dat") or die("ファイルの保存に失敗しました。");
binmode(OUT);
print(OUT $file);
close(OUT);

print << "END_OF_HTML";

<img src="./tmp.dat"><br>
ファイル名 : $filename<br>
MIMEタイプ : $type<br>

</BODY>
</HTML>
END_OF_HTML

exit;

これだとファイルが「tmp.dat」になってしまうので
ちゃんと画像がサーバーにアップロードされるようにしたいです。
あとファイル名はこちらで指定したいです。

A 回答 (1件)

出力しているファイル名をtmp.datから変えればいいのでは。

    • good
    • 0

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