<?php
 
 
//****************************
 
//  Simple PhpUpload Class   |
 
//     Writed 14.12.2010     |
 
//     Slavomir Mikolaj      |
 
//***************************|
 
 
 class PhpUpload {
 
 
 
   public $Var_ReturnOutput = false;
 
   public $Var_ext = array();
 
   public $Var_FullDisplay = false;
 
   public $Var_InstanceName = 'Upload1';
 
   public $Var_MsgError = 'Error occured';
 
   public $Var_MsgDone = 'Completed!';
 
   public $Var_UploadDir = '/';
 
   public $Var_ErrorTypes = array();
 
   public $Var_ReturnBool = false;
 
   public $Var_Ext = array();
 
   public $Var_MaxSize = 0;
 
   public $Ext = '';
 
   public $Var_NewName = '';
 
   
 
   public function SetExts($array) {   
 
    $node_array = explode('|', $array); 
 
      
 
    foreach($node_array as $item) {
 
     array_push($this->Var_Ext, $item);
 
    }     
 
   }
 
   
 
   public function SetMaxSize($int) {
 
    $this->Var_MaxSize = $int * 1000; 
 
   }
 
   
 
   public function NewName($str) {
 
    $this->Var_NewName = $str;
 
   }
 
   
 
   public function SetErrorTypes($type1, $type2, $type3, $type4) {  
 
   
 
    $type4 = str_replace(array('$'), array($this->Var_MaxSize / 1000), $type4);
 
    $this->Var_ErrorTypes = array(1=>$type1, 6=>$type2, 19=>$type3, 20=>$type4); 
 
       
 
   }
 
   
 
   public function ReturnBool($bool) {  
 
    $this->Var_ReturnBool = $bool;    
 
   }
 
   
 
   public function ReturnOutput($bool) {
 
    $this->Var_ReturnOutput = $bool;    
 
   }
 
   
 
   public function FullDIsplay($bool) { 
 
    $this->Var_FullDisplay = $bool;              
 
   }
 
   
 
   public function SetUploadDir($dir) {
 
    $this->Var_UploadDir = $dir;    
 
   }
 
   
 
    
 
   function ShowUpload($instance, $uploadfile = '', $formid = 'uploadform', $submitvalue = 'Upload') {
 
    global $Var_FullDisplay;
 
    global $Var_ReturnOutput;
 
    global $Var_InstanceName;
 
    global $Var_UploadDir;
 
        
 
    $Var_InstanceName = $instance;
 
    $a='';      
 
       
 
     if($this->Var_FullDisplay == true) {     
 
       $a .= '<form method="post" id="'.$formid.'" action="'.$uploadfile.'" enctype="multipart/form-data">';
 
       $a .= '<input type="file" name="'.$instance.'"/>';
 
       $a .= '<input type="submit" value="'.$submitvalue.'" name="upload" />';   
 
       $a .= '</form>';       
 
     }else {
 
       $a .= '<input type="file" name="'.$instance.'"/>';     
 
     }
 
         
 
     if($Var_ReturnOutput != true) {
 
      echo $a;
 
     }else {     
 
      return $a;
 
     }
 
   }
 
    
 
   function TryUpload() {
 
    global $Var_InstanceName;
 
    global $Var_UploadDir;
 
    
 
     $FalseUpload = false;
 
       
 
             
 
    if(strlen($this->Var_UploadDir) <= 0) {   
 
     if(!$this->Var_ReturnOutput) {
 
     
 
     if($this->Var_ReturnBool) {return false; exit;}
 
     
 
      echo 'System error: nothing upload folder'; 
 
       exit;
 
       
 
     }else {
 
    
 
      return 'System error: nothing upload folder';
 
       exit;
 
     }          
 
    }
 
         
 
    if(isset($_FILES[$Var_InstanceName]) && strlen($_FILES[$Var_InstanceName]['name'])>0) {
 
                                     
 
     if($_FILES[$Var_InstanceName]['error'] > 0) {  
 
     
 
      if($this->Var_ReturnBool) {return false; exit;}
 
      
 
      if(!$this->Var_ReturnOutput) {
 
       echo $this->Var_ErrorTypes[$_FILES[$Var_InstanceName]['error']]; 
 
        exit;
 
      }else {
 
       return $this->Var_ErrorTypes[$_FILES[$Var_InstanceName]['error']];
 
        exit;
 
      }
 
      
 
     }       
 
       //
 
     if($_FILES[$Var_InstanceName]['size'] > $this->Var_MaxSize) {
 
      
 
       if($this->Var_ReturnBool) {return false; exit;}
 
       
 
       if(!$this->Var_ReturnOutput) {   
 
        echo $this->Var_ErrorTypes[20]; 
 
       }else {    
 
        return $this->Var_ErrorTypes[20];     
 
       }         
 
       exit; 
 
     }
 
       //
 
      $node_array = explode('.', $_FILES[$Var_InstanceName]['name']);      
 
      $fExt = strtolower(end($node_array));
 
      $this->Ext = $fExt;
 
      
 
      if(!in_array($fExt, $this->Var_Ext)) {
 
      
 
       if($this->Var_ReturnBool) {return false; exit;}
 
       
 
      if(!$this->Var_ReturnOutput) {   
 
        echo $this->Var_ErrorTypes[19]; 
 
       }else {    
 
        return $this->Var_ErrorTypes[19];     
 
       }        
 
       exit;
 
      }
 
             
 
     try {   
 
     
 
      if(strlen($this->Var_NewName)>0) {
 
       $process = move_uploaded_file($_FILES[$Var_InstanceName]['tmp_name'], $this->Var_UploadDir.$this->Var_NewName);
 
      }else {
 
       $process = move_uploaded_file($_FILES[$Var_InstanceName]['tmp_name'], $this->Var_UploadDir.basename($_FILES[$Var_InstanceName]['name']));
 
      }
 
        
 
      if($process) {
 
        
 
       if($this->Var_ReturnBool) {return true; exit;}
 
      
 
       if(!$this->Var_ReturnOutput) {
 
        echo $this->Var_MsgDone;
 
        }else {
 
       
 
       return $this->Var_MsgDone;
 
 
       }
 
      }  
 
        
 
     } catch (Exception $e) {
 
     
 
       if($this->Var_ReturnBool) {return false; exit;}
 
     
 
       if(!$this->Var_ReturnOutput) {   
 
        echo $this->Var_MsgError.': '.$e;     
 
       }else {    
 
        return $this->Var_MsgError.': '.$e;      
 
       }                     
 
      }   
 
    }      
 
   }
 
 }
 
 
?>
 
 
 |