public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 public function uploadFile($fieldName, &$errors = array())
 {
     $errors = array();
     if (!count($_FILES)) {
         $errors[] = 'Please choose a file';
         $name = '';
     } else {
         $name = $_FILES[$fieldName]['name'];
     }
     // check multimedia type
     $info = pathinfo($name);
     $info['extension'] = strtolower($info['extension']);
     $quoteName = '"' . $name . '"';
     switch (true) {
         // check type
         case !in_array($info['extension'], Base_Constant_Server::$allowFiles):
             $errors[] = 'File ' . $quoteName . ' type "' . $info['extension'] . '" is not supported. Supported types are ' . implode(', ', Base_Constant_Server::$allowFiles);
             break;
             // check error
         // check error
         case $_FILES[$fieldName]['error'] > 0:
             $errors[] = $quoteName . ' Can not upload the file ';
             break;
             /*// check file size
               case $_FILES[$fieldName]['size'] < Base_Constant_Server::MIN_IMAGE_SIZE || Base_Constant_Server::MAX_IMAGE_SIZE < $_FILES[$fieldName]['size']:
                   $errors[] = $quoteName . ' The file size should be between 1kB and ' . (Base_Constant_Server::MAX_IMAGE_SIZE / 1024) . 'kB (' . (Base_Constant_Server::MAX_IMAGE_SIZE / 1024) / 1024 . 'MB)';
                   break;*/
         /*// check file size
           case $_FILES[$fieldName]['size'] < Base_Constant_Server::MIN_IMAGE_SIZE || Base_Constant_Server::MAX_IMAGE_SIZE < $_FILES[$fieldName]['size']:
               $errors[] = $quoteName . ' The file size should be between 1kB and ' . (Base_Constant_Server::MAX_IMAGE_SIZE / 1024) . 'kB (' . (Base_Constant_Server::MAX_IMAGE_SIZE / 1024) / 1024 . 'MB)';
               break;*/
         default:
             $imageSize = getimagesize($_FILES[$fieldName]['tmp_name']);
             break;
     }
     if ($errors) {
         return false;
     }
     $copied = array();
     $info = pathinfo($name);
     $info['extension'] = strtolower($info['extension']);
     $quoteName = '"' . $name . '"';
     $newName = Base_Controller_Helper_StandardFilename::getInstance()->direct($name, date('Ymd'), uniqid('', true)) . '.' . $info['extension'];
     $target = WWW_PATH . DS . Base_Constant_Server::MEDIA . DS . Base_Constant_Server::MEDIA_UPLOAD . DS . 'files' . DS . $newName;
     if ($_FILES[$fieldName]['type'] == 'video/mp4') {
         $target = WWW_PATH . DS . Base_Constant_Server::MEDIA . DS . Base_Constant_Server::MEDIA_VIDEO . DS . $newName;
     }
     if (false === copy($_FILES[$fieldName]['tmp_name'], $target)) {
         $errors[] = $quoteName . ' Can not upload the file ';
     }
     if ($errors) {
         if ($copied) {
             $errors[] = 'Some uploaded files are ' . implode(', ', $copied);
         }
         return false;
     }
     return $newName;
 }