Holiday Greetings,
I copied this from a CGI web site, and while it does work,
I was wondering what folks with more experience in PERL thought of 
this code.
Thanks for any comments,
Dave Gilden


#!/usr/bin/perl -w

use CGI qw/:standard/;
use CGI;
use Fcntl qw( :DEFAULT :flock );
use CGI::Carp qw(fatalsToBrowser);
use strict;

# Upload Code
use constant UPLOAD_DIR     => "/home/sites/site01/web/private/mydata/";
use constant BUFFER_SIZE    => 16_384;
use constant MAX_FILE_SIZE  => 2 * 1_048_576;   #Limit each upload to 2 MB
use constant MAX_DIR_SIZE   => 10 * 1_048_576; # Limit total uploads to 10 MB
use constant MAX_OPEN_TRIES => 100;

$CGI::DISABLE_UPLOADS   = 0;
$CGI::POST_MAX          = MAX_FILE_SIZE;

my $q = new CGI;
$q->cgi_error and error( $q, "Error transferring file: " . $q->cgi_error );

my $action = $q->param( "action" );
    
    if  ($action =~ /Update/) {
        print redirect("./import_clean_csv.php");
        exit;
    };
        
    if  ($action =~ /Clean/) {
    my @filesToRemove;  
     
    chdir UPLOAD_DIR or die "Couldn't chdir to afm_data directory: $!";
    
    #my @filesToRemove  =  map  {$_ =~ /^(\w[\w.-]*)/} <*>;
    
    opendir(DR,"./");
    @filesToRemove  =  grep  {$_ =~ /^(\w[\w.-]*)/} readdir DR;
    closedir DR;


print $HTML_HEADER;
print '<div align="center">';

    foreach my $fr (@filesToRemove) {
    
    print  "Deleted $fr<br>\n";
    unlink($fr)  or die "Couldn't Delete $fr $!";
    }

print <<HTML_OUT;
<p class="top-header">Your Done close this window! 
<form><input type="button" onclick="self.close()" value="Close  
Window"></form></p>
</div>
HTML_OUT
print end_html;
exit;
    };


    if  ($action =~ /Upload/) {

my $file = $q->param( "file" ) || error( $q, "No file received." );

# my $filename  = $q->param( "filename" ) || error( $q, "No filename entered." 
);
my $fh        = $q->upload( "file" );
my $buffer    = "";

if ( dir_size( UPLOAD_DIR ) + $ENV{CONTENT_LENGTH} > MAX_DIR_SIZE ) {
    error( $q, "Upload directory is full." );
}


        # Open output file, making sure the name is unique
        until ( sysopen OUTPUT, UPLOAD_DIR . "/$file", O_CREAT | O_RDWR | 
O_EXCL ) {
        #   $file =~ s/(\d*)(\.\w+)$/($1||0) + 1 . $2/e;
            $1 >= MAX_OPEN_TRIES and error( $q, "Unable to save your file." );
        }
            

# This is necessary for non-Unix systems; does nothing on Unix
#binmode $fh;
#binmode OUTPUT;

        # Write contents to output file
        while ( read( $fh, $buffer, BUFFER_SIZE ) ) {
            print OUTPUT $buffer;
        }

close OUTPUT;

------snip-------


Cool music.....From GuineƩ comes this CD of kora fusion, electronica  
[ Audition Mp3s at the URL below ]
<http://www.coraconnection.com/pages/other_cds.html#sabolan>

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to