用 perl 实现文件上传

发表于:2007-06-11来源:作者:点击数: 标签:
示例的 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 /ht

示例的 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 ##

## aclearcase/" target="_blank" >cceptance 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";



原文转自:http://www.ltesting.net

...