Created: 27 July 2008
ファイルをアップロードする基本例 (27 July 2008)
複数のファイルをアップロードする方法 (27 July 2008)
type="file"を指定すると、「参照」ボタンが表示され、アップロードするファイルを選択できます。
<html>
<body>
<form action="upload.cgi" method="POST" ENCTYPE="multipart/form-data">
<p>file <input type="file" name="uploadFile"></p>
<p><input type="submit" value="OK"></p>
</form>
</body>
</html>上記フォームの送信先(=フォームの処理)の内容、"upload.cgi"のようにします。
#!/usr/bin/perl
use CGI;
my $form = new CGI;
print $form->header("text/html");
my $filename = $form->param('uploadFile');
# パス名からファイル名の取り出し
@newfile = split /\\/, $filename;
$newfile = pop @newfile;
# ファイルを保存する。
open (OUTFILE,">/tmp/$newfile") or die "Can't make serverside file!\n";
while ($bytesread = read($filename,$buffer,1024)) {
print OUTFILE $buffer;
}
print "O.K. File($filename) was uploaded as $newfile<br>\n";
type="file"を複数設けると、複数のファイルが選択できます。
<html>
<body>
<form action="upload.cgi" method="POST" ENCTYPE="multipart/form-data">
<p>file <input type="file" name="uploadFile1"></p>
<p>file <input type="file" name="uploadFile2"></p>
<p><input type="submit" value="OK"></p>
</form>
</body>
</html>上記フォームの送信先(=フォームの処理)の内容、"upload.cgi"では、それぞれ処理します。
#!/usr/bin/perl
use CGI;
my $form = new CGI;
print $form->header("text/html");
# =============== 1番目のファイイルの処理 =============== #
my $filename = $form->param('uploadFile1');
# パス名からファイル名の取り出し
@newfile = split /\\/, $filename;
$newfile = pop @newfile;
# ファイルを保存する。
open (OUTFILE,">/tmp/$newfile") or die "Can't make serverside file!\n";
while ($bytesread = read($filename,$buffer,1024)) {
print OUTFILE $buffer;
}
print "O.K. File($filename) was uploaded as $newfile<br>\n";
# =============== 2番目のファイイルの処理 =============== #
my $filename = $form->param('uploadFile2');
# パス名からファイル名の取り出し
@newfile = split /\\/, $filename;
$newfile = pop @newfile;
# ファイルを保存する。
open (OUTFILE,">/tmp/$newfile") or die "Can't make serverside file!\n";
while ($bytesread = read($filename,$buffer,1024)) {
print OUTFILE $buffer;
}
print "O.K. File($filename) was uploaded as $newfile<br>\n";