发信人: zhcharles(弦下之意 -> 寻)
整理人: workingnow(2003-07-07 22:06:19), 站内信件
|
利用 CGI.pm 模块上传文件
小传 (zhcharles)
利用 perl 来上传文件是一件非常容易的事情,本文介绍如何利用 perl 语言和 CGI.pm 模块上传文件。
程序内容:
#!/usr/bin/perl -w
use CGI;
my $html_header = 0;
my $maxsize = 10000;
my $size = 0;
my $cgi = new CGI;
my $filename = $cgi -> param('filename');
my $name = $filename;
$name = $1 if ($name =~ /([^\/\\]+)$/);
my $path = "/tmp/";
unless($path =~ /\/$/) {
$path .= "/";
}
$name =~ s/\s+//g;
my $outfile = $path . $name;
my ($tmp,$data);
while(my $size_tmp = read($filename,$tmp,1024)) {
$size += $size_tmp;
if($size > $maxsize) {
err("File too big!\n");
}
$data .= $tmp;
}
unless(open(FH,">$outfile")) {
err("Can not open file $outfile!\n");
}
binmode FH;
print FH "$data";
close(FH);
err($size);
sub err {
if($html_header == 0) {
print "Content-type:text/html\n\n";
$html_header = 1;
}
print "@_";
exit;
}
网页内容:
<form ENCTYPE="multipart/form-data" method="POST" action="http://freebsd.zhitc.com/cgi-bin/upload/up.pl">
<p><input type="file" name="filename" size="20">
<input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
----
从来不敢仔细看你,害怕从此迷失自己!
|
|