Example #1
0
 /**
  * Упрощённая процедура загрузки файла
  * @param string $element_name    название элемента массива $_FILES для загрузки
  * @param string $upload_location каталог размещения загруженного файла
  * @param array  $params          массив расширенных парамтеров загрузки
  *         string new_name - новое имя для файла
  *         string new_extension - переименовать расширение файла
  *
  */
 public static function easy_upload($element_name, $upload_location, array $params = array())
 {
     $file_name = $_FILES[$element_name]['name'];
     //Если нужно сменить имя файла
     if (isset($params['new_name'])) {
         $file_name = $params['new_name'] . '.' . substr($file_name, strrpos($file_name, '.') + 1);
     } else {
         //иначе - очищаем исходное имя файла от мусора
         $file_name = joosFile::make_safe_name($file_name);
     }
     //директория загрузки
     $upload_location = rtrim($upload_location, '/');
     if (!joosFolder::is_writable($upload_location)) {
         throw new joosUploadLibrariesException('Каталог :upload_location недоступен для создания подкаталогов и записи', array(':upload_location' => $upload_location));
     }
     //если её нет, создаём
     is_dir($upload_location) ? null : mkdir($upload_location, 0755, true);
     //перемещаем файл в директорию назначения
     $file_base_location = $upload_location . DS . $file_name;
     $success = move_uploaded_file($_FILES[$element_name]['tmp_name'], $file_base_location);
     //получаем путь файла для http
     $file_live_location = str_replace(JPATH_BASE, '', $upload_location);
     $file_live_location = str_replace("\\", DS, $file_live_location);
     return array('success' => $success, 'file_location' => $file_live_location, 'file_name' => $file_name, 'file_live_location' => sprintf('%s%s/%s', JPATH_SITE, $file_live_location, $file_name), 'file_base_location' => sprintf('%s%s/%s', JPATH_BASE, $file_live_location, $file_name));
 }
Example #2
0
 /**
  * Создание безопасного имени для каталога
  * Работает по принципу joosFile::get_safe_name, но из названия дополнительно удаляются точки
  *
  * @param string $location полный путь к каталогу
  *
  * @return string безопасное имя для каталога
  */
 public static function get_safe_name($location)
 {
     $location = str_replace('.', '-', $location);
     return joosFile::make_safe_name($location);
 }