| 用 perl 实现文件上传 |
|
|
作者:未知 文章来源:网海之贝 点击数:
更新时间:2004-8-17  |
|
| |
示例的 HTML 文件如下: <html> <body> <form method="POST" action="psupload.cgi" ENCTYPE="multipart/form-data"> File 1: <input type="file" name="FILE1"> <br> File 2: <input type="file" name="FILE2"> <br> <input type="submit" value="Upload!"> </form> </body> </html>
后台的 Perl 程序如下:
#!/usr/bin/perl ####################################### ## Perl Services Upload Helper v1.0 ## ## http://www.perlservices.com ## ## perlservices@perlservices.com ## ## ########################################### ## You should carefully read all of the following terms and conditions ## ## before using this program. Your use of this software indicates your ## ## acceptance of this license agreement and warranty. ## ## This program is being distributed as freeware. It may be used ## ## free of charge, but not modified below the line specified. This copyright ## ## must remain intact. ## ## ## ## By using this program you agree to indemnify Perl Services from any ## ## liability. ## ## ## ## Selling the code for this program without prior written consent is ## ## expressly forbidden. Obtain permission before redistributing this ## ## program over the Internet or in any other medium. In all cases the ## ## copyright must remain intact. ## ## ## ## There are security hazards involved with this script. Read the readme file## ## before using the script. ## ################################################################################
## ## Start setting up options here:
## Your path to where you want your files uploaded. ## Note: NO trailing slash $basedir = "/home/path/to/directory";
## Do you wish to allow all file types? yes/no (no capital letters) $allowall = "yes";
## If the above = "no"; then which is the only extention to allow? ## Remember to have the LAST 4 characters i.e. .ext $theext = ".gif";
## The page you wish it to forward to when done: ## I.E. http://www.mydomainname.com/thankyou.html $donepage = "http://www.perlservices.com/";
################################################ ################################################ ## DO NOT EDIT OR COPY BELOW THIS LINE ## ################################################ ################################################
use CGI; $onnum = 1;
while ($onnum != 11) { my $req = new CGI; my $file = $req->param("FILE$onnum"); if ($file ne "") { my $fileName = $file; $fileName =~ s!^.*(\\|\/)!!; $newmain = $fileName; if ($allowall ne "yes") { if (lc(substr($newmain,length($newmain) - 4,4)) ne $theext){ $filenotgood = "yes"; } } if ($filenotgood ne "yes") { open (OUTFILE, ">$basedir/$fileName"); print "$basedir/$fileName<br>"; while (my $bytesread = read($file, my $buffer, 1024)) { print OUTFILE $buffer; } close (OUTFILE); } } $onnum++; }
print "Content-type: text/html\n"; print "Location:$donepage\n\n";
|
| 文章录入:admin 责任编辑:admin
|
|
上一篇文章: Perl渐成气候
下一篇文章: 用Perl制作页面计数器 |
| 【字体:小
大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】
|