<?php
require_once "HTML/QuickForm.php" ;

function process() 
{
    global $file,$path;
    if ($file->isUploadedFile()) {
        $file->moveUploadedFile( $path);
        print 'Upload done!';
    }
    else {
        print "Keine Datei hochgeladen!";
    }
}

function ruleCheckImagesize()
{
    global $file;
    if ($file->isUploadedFile()) {
        $meta = $file-> getValue();
        if($size = @getimagesize( $meta['tmp_name'])) {
            if($size[0] ==  640 && $size[1 ] == 480) {
                return true;
            }
        }
    }
    return false;
}
      
$uploadForm = new HTML_QuickForm( 'upload_form', 'post');
$uploadForm->registerRule( 'imagesize', 'function', 'ruleCheckImagesize' );
$path = "d:/www/tmp/";
$file = $uploadForm-> addElement('file', 'filename' , 'File:');
$uploadForm->addRule( 'filename', 'Du musst eine Datei wählen',  'uploadedfile' );
$uploadForm->addRule( 'filename', 'Die Datei muss 640x480px gross sein!',  'imagesize');
$uploadForm->addElement( 'submit', 'btnUpload', 'Upload' );
if ($uploadForm->validate()) {
    $uploadForm->process( 'process', true);
}
else {
    $uploadForm->display();
}