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; }