<?php 
/** Upload.php - Utility functions 
 * 
 ************************************************************************ 
 * � Sloppycode.net All rights reserved. 
 * 
 * This is a standard copyright header for all source code appearing 
 * at sloppycode.net. This application/class/script may be redistributed, 
 * as long as the above copyright remains intact. 
 * Comments to sloppycode@sloppycode.net 
 ************************************************************************ 
 * Upload class - wrapper for uploading files. See accompanying docs 
 * 
 * @author C.Small <sloppycode@sloppycode.net> 
 * 
 * More features and better error checking will come in the next version 
 * 
 * 
 *** Revision History 
 *  2-Jun-2009 B.Dutton    Removed radweb_include for auto load 
 * 30-Jun-2003 Dutton      Checking into RADWEB 6.0 
 * 04-Jan-2000 Dutton      Initial Coding 
 * 
 */ 
class Upload { 
    /** 
     * 
     * @type var 
     */ 
    private $maxupload_size; 
 
    /** 
     * 
     * @type var 
     */ 
    private $post_files; 
 
    /** 
     * 
     * @type var 
     */ 
    private $errors; 
 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function __construct ( ) { 
        global $_FILES; 
        $this->post_files = $_FILES; 
        $this->isPosted = false; 
    } 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @param $i Desc 
     * @param $i Desc 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function save ( $directory, $field, $overwrite, $mode=0777 ) { 
        $this->isPosted = true; 
        if ( $this->post_files[$field]['size'] < $this->maxupload_size && 
             $this->post_files[$field]['size'] >0 ) { 
            $noerrors = true; 
            $this->isPosted = true; 
            // Get names 
            $tempName  = $this->post_files[$field]['tmp_name']; 
            $file      = $this->post_files[$field]['name']; 
            $all       = $directory . "/" . $file; 
 
            // Copy to directory 
            if ( file_exists ( $all ) ) { 
                if ( $overwrite ) { 
                    @unlink ( $all )         || $noerrors=false; $this->errors  = "Upload class save error: unable to overwrite ".$all."<BR>"; 
                    @copy ( $tempName,$all ) || $noerrors=false; $this->errors .= "Upload class save error: unable to copy to ".$all."<BR>"; 
                    @chmod ( $all,$mode )    || $ernoerrorsrors=false; $this->errors .= "Upload class save error: unable to change permissions for: ".$all."<BR>"; 
                } 
            } else { 
                @copy ( $tempName,$all )   || $noerrors=false;$this->errors  = "Upload class save error: unable to copy to ".$all."<BR>"; 
                @chmod ( $all,$mode )      || $noerrors=false;$this->errors .= "Upload class save error: unable to change permissions for: ".$all."<BR>"; 
            } 
            return $noerrors; 
        } 
 
        else if ( $this->post_files[$field]['size'] > $this->maxupload_size ) { 
            $this->errors = "File size exceeds maximum file size of ".$this->maxuploadsize." bytes"; 
            return false; 
        } 
 
        else if ( $this->post_files[$field]['size'] == 0 ) { 
            $this->errors = "File size is 0 bytes"; 
            return false; 
        } 
    } 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @param $i Desc 
     * @param $i Desc 
     * @param $i Desc 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function saveAs ( $filename, $directory, $field, $overwrite, $mode=0777 ) { 
        $this->isPosted = true; 
        if ( $this->post_files[$field]['size'] < $this->maxupload_size && 
             $this->post_files[$field]['size'] > 0 ) { 
            $noerrors = true; 
 
            // Get names 
            $tempName  = $this->post_files[$field]['tmp_name']; 
            $all       = $directory."/".$filename; 
 
            // Copy to directory 
            if ( file_exists ( $all ) ) { 
                if ( $overwrite ) { 
                    @unlink ( $all )         || $noerrors=false; $this->errors  = "Upload class saveas error: unable to overwrite ".$all."<BR>"; 
                    @copy ( $tempName,$all ) || $noerrors=false; $this->errors .= "Upload class saveas error: unable to copy to ".$all."<BR>"; 
                    @chmod ( $all,$mode )    || $noerrors=false; $this->errors .= "Upload class saveas error: unable to copy to".$all."<BR>"; 
                } 
            } 
 
            else { 
                @copy ( $tempName,$all )   || $noerrors=false; $this->errors  = "Upload class saveas error: unable to copy to ".$all."<BR>"; 
                @chmod ( $all,$mode )      || $noerrors=false; $this->errors .= "Upload class saveas error: unable to change permissions for: ".$all."<BR>"; 
            } 
            return $noerrors; 
        } 
        else if ( $this->post_files[$field]['size'] > $this->maxupload_size ) { 
            $this->errors = "File size exceeds maximum file size of ".$this->maxuploadsize." bytes"; 
            return false; 
        } 
 
        else if ( $this->post_files[$field]['size'] == 0 ) { 
            $this->errors = "File size is 0 bytes"; 
            return false; 
        } 
    } 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function getFilename ( $field ) { 
        return $this->post_files[$field]['name']; 
    } 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function getFileMimeType ( $field ) { 
        return $this->post_files[$field]['type']; 
    } 
 
    /** 
     * function to ... 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function getFileSize ( $field ) { 
        return $this->post_files[$field]['size']; 
    } 
    /** 
     * function to ... 
     * @param $i Desc 
     * @returns var 
     * @public 
     */ 
    function deleteFile ( $field ) { 
        $all = $this->post_files[$field]['name']; 
        if ( file_exists ( $all ) ) @unlink ( $all ); 
    } 
} 
 
 |