精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● CGI>>编程技巧>>利用 CGI.pm 模块上传文件

主题:利用 CGI.pm 模块上传文件
发信人: 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>





----
 
从来不敢仔细看你,害怕从此迷失自己!
   
                       

[关闭][返回]