here is the working script on my local windows machine. note that you will
need to change $the_path
Everything is pretty self explanatory. You can read the article that I took
this from at http://phpbuilder.com/columns/bealers20000904.php3

olinux

============================================================================
====
<?

$my_max_file_size       = "102400"; # in bytes
$image_max_width        = "400";
$image_max_height       = "400";
$the_path                       = "c:/program files/apache 
group/apache/htdocs/uploads";

$registered_types = array(
                                        "application/x-gzip-compressed" => ".tar.gz, 
.tgz",
                                        "application/x-zip-compressed" => ".zip",
                                        "application/x-tar"     => ".tar",
                                        "text/plain" => ".html, .php, .txt, .inc 
(etc)",
                                        "image/gif" => ".gif",
                              "image/pjpeg"  => ".jpg, .jpeg",
                              "image/jpeg"  => ".jpg, .jpeg",
                                        "image/png" => ".png",
                                        ); # these are only a few examples, you can 
find many more!

$allowed_types = array("image/gif","image/jpeg","image/pjpeg","image/png");

# --

function form($error=false) {

global $PHP_SELF,$my_max_file_size;

        if ($error) print $error . "<br><br>";

        print "\n<form ENCTYPE=\"multipart/form-data\"  action=\"" . $PHP_SELF .
"\" method=\"post\">";
        print "\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" .
$my_max_file_size . "\">";
        print "\n<INPUT TYPE=\"hidden\" name=\"task\" value=\"upload\">";
        print "\n<P>Upload a file";
        print "\n<BR>NOTE: Max file size is " . ($my_max_file_size / 1024) . "KB";
        print "\n<br><INPUT NAME=\"the_file\" TYPE=\"file\" SIZE=\"35\"><br>";
        print "\n<input type=\"submit\" Value=\"Upload\">";
        print "\n</form>";

} # END form

function validate_upload($the_file) {

global $my_max_file_size, $image_max_width,
$image_max_height,$allowed_types,$the_file_type,$registered_types;

$start_error = "\n<b>Error:</b>\n<ul>";

    if ($the_file == "none") { # do we even have a file?

        $error .= "\n<li>You did not upload anything!</li>";

    } else { # check if we are allowed to upload this file_type

        if (!in_array($the_file_type,$allowed_types)) {
            $error .= "\n<li>The file that you uploaded was of a ".
                "type that is not allowed, you are only
                allowed to upload files of the type:\n<ul>";
            while ($type = current($allowed_types)) {
                $error .= "\n<li>" . $registered_types[$type] . " (" . $type
. ")</li>";
                next($allowed_types);
            }
            $error .= "\n</ul>";
        }

                if (ereg("image",$the_file_type) &&
(in_array($the_file_type,$allowed_types))) {
                  $the_file = stripslashes($the_file);

      $size = GetImageSize($the_file);
      list($foo,$width,$bar,$height) = explode("\"",$size[3]);
      if ($width > $image_max_width) {
      $error .= "\n<li>Your image should be no wider than " .
      $image_max_width . " Pixels</li>";
           }
      if ($height > $image_max_height)

      $error .= "\n<li>Your image should be no higher than " .
      $image_max_height . " Pixels</li>";
          }
       }
      if ($error) {
      $error = $start_error . $error . "\n</ul>";
      return $error;
      } else {
      return false;
      }
    }
 } # END validate_upload



# --


function list_files() {

global $the_path;

        $handle = dir($the_path);
        print "\n<b>Uploaded files:</b><br>";
        while ($file = $handle->read()) {
                if (($file != ".") && ($file != "..")) {
                        print "\n" . $file . "<br>";
           }
        }
        print "<hr>";
}

# --

function upload($the_file) {

global $the_path,$the_file_name;

        $error = validate_upload($the_file);
        if ($error) {
                form($error);
        } else { # cool, we can continue
        $the_file = stripslashes($the_file);

                if (!@copy($the_file, $the_path . "/" . $the_file_name)) {
                        form("\n<b>Something barfed, check the path to and the 
permissions for
the upload directory</b>");
                } else {
                        list_files();
                        form();
                }
        }
} # END upload

# --

############ Start page
print "<html>\n<head>\n<title>Upload example</title>\n</head>\n<body>";

switch($task) {
        case 'upload':
                upload($the_file);
        break;
        default:
                form();
}

print "\n</body>\n</html>";

?>

============================================================================
====

enjoy,

olinux



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to