#!/usr/local/bin/perl 


#######################################################
#
#  File Upload Script für Konzept139
#
#   Copyright 2000, Fa. DragNet, Marius Dichtl
#
#######################################################

package main;

use strict;

use CGI;

use vars qw ($query);

require 'KPglobals.pl';

# Definition of all CGI-Controllers
my $uploadSubmit = 'Upload';
my $resetSubmit = 'Reset';

# Definition of Redirect URL
my $uploadURL = $KPglobals::htmlDocPath.'uploadSuccess.html';

MAIN_LOOP:{

    # Generate new CGI-Object
    $query =  new CGI;
    my @errorMsgs;



    # Buttons...
    if ($query->param($resetSubmit)){
	my @paramNames = $query->param;
	foreach (@paramNames){
	    $query->param($_,'');
	}
    }

    if ($query->param($uploadSubmit)){

	# Login und PassWordCheck...
	my $login = $query->param('login');
	my $password = $query->param('password');

	if ($login ne $KPglobals::uploadLogin || $password ne $KPglobals::uploadPasswd ){
	    push(@errorMsgs, 'Das eingegebene <i>Login</i> und/oder <i>Password</i> ist nicht korrekt. Bitte wiederholen Sie Ihre Eingaben!');
	}
	if ($query->param("filename") eq ''){
	    push(@errorMsgs, 'Sie haben keine Datei angegeben, die auf unseren Server hochgeladen werden soll. Bitte wiederholen Sie Ihre Eingaben!');
	}

	if (scalar(@errorMsgs) == 0){
	    # File Upload...
	    my $size;
	    my $total_size;
	    my $data;
	    my $filename = $query->param('filename');
	    open (SAVE,">".$KPglobals::uploadPath.$filename);
	    while ($size = read($filename,$data,1024)) {
		print SAVE $data;
		$total_size += $size;
	    }
	    close SAVE;
	    # ...File Upload


	    # Send Email to Administrator...
	    my $sendmail = $KPglobals::sendMail;
	    my $fromAddress = $KPglobals::sendMailFromAddress;
	    my $toAddress = $KPglobals::sendMailToAddress;
	    open (MAIL,"| $sendmail -t")||die "Could not find $KPglobals::sendMail";

	    my $emailText = "From: $fromAddress
To: $toAddress
Subject: Neues File im Upload Ordner

--- THIS MESSAGE WAS GENERATED AUTOMATICALLY ---

Eingang Neuer Dateien durch Benutzung der File Upload Area:

Zielordner:
===========
 $KPglobals::uploadPath

Datei:
======
 $filename


Bitte Nachschauen!";
	    print MAIL $emailText;
	    close (MAIL);


	    # Delete all Form Parameters...

	    my @paramNames = $query->param;
	    foreach (@paramNames){
		$query->param($_,'');
	    }

	    # Redirect to Succes HTML-Page
	    print $query->redirect($uploadURL);
	    last MAIN_LOOP;
	}

    }
     
# ...Buttons


# Generate HTML-Mask...
    print $query->header();
    print $query->start_html(
			 -title => 'Konzept 139 - File Upload Area',
			 -bgcolor =>"black",
			 -link    => "white",
			 -alink   => "#8ccb4c",
			 -vlink   => "#3300ff",
			 -text    => "white");

# HTML-Page First Part...
print "<br>
                <br>
                <br>
                <br>
                <br>
                <br>
                <center>
                        <h1>File Upload Area</h1>
                </center>
                <p><br>
                </p>
                <blockquote>
                        In unserem \"up!\"-Bereich k&ouml;nnen Sie einfach und schnell Dateien auf unseren Web-Server laden.<br>
                        <br>
                        <p style=\"alignment:justify\">Bitte geben Sie zuerst <i>Login</i> und <i>Password</i> ein, welche Sie von uns erhalten, wenn Sie uns anmailen! Mit dem <i>Browse/Durchsuchen</i>-Button w&auml;hlen Sie die Datei auf Ihrem Rechner aus, die Sie uns schicken m&ouml;chten. Bitte setzen Sie sich mit uns vorher in Verbindung, wenn die Dateigr&ouml;sse 10 MB übersteigt. Dr&uuml;cken Sie dann den <i>Upload</i>-Button. Die von Ihnen ausgew&auml;hlten Dateien werden nach einer Pr&uuml;fung automatisch auf unserem Web-Server hochgeladen<br>
                        </p>
                        <center>
                                <blockquote>
";

# Print Error Messages...
    print "</center>";
    print "\n<font size = -1 color=#FF0000><ul>\n";
    foreach (@errorMsgs){
	print "<li>";
	print "<strong>";
	print $_;
	print "</strong>";
	print "</li>\n";
    }
    print "\n</font></ul>\n";
    print "<center>";

# HTML-Page Second Part...
# Start Form ...  
    print $query->start_multipart_form();

# CGI-Controllers...

print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"5\" width=\"134\" height=\"111\">
                                                <tr>
                                                        <td>Login</td>
                                                        <td>";
    print $query->textfield(-name => "login",
			    -size => 16,
			    -maxlength => 16,
			   );

    print"</td></tr><tr>
                                                        <td>Password</td><td>";
    print $query->password_field(-name => "password",
			   -size => 16,
			   -maxlength => 16,
			   );
    print "</td>
                                                </tr>
                                                <tr>
                                                        <td>Filename</td>
                                                        <td>";
    print $query->filefield(-name=> "filename",
				-value => '',
				-size=>16,
				);

    print"                                                </tr>
                                                <tr>
                                                        <td></td>
                                                        <td><br>";
    print $query->submit($uploadSubmit);
    print $query->submit($resetSubmit);

print"                                                </tr>
                                        </table>
                                        <p>
";

# ...CGI-Controllers
    print $query->endform;

# HTML-Page ThirdPart...
print "</blockquote>
                        </blockquote>
                </center>
        </body>

";
    print $query->end_html;
# ...HTML-MASK   
}
exit(0);




