Example #1
0
 /**
  * Загрузка файла в директорию объекта
  * @param Entity $entity
  * @param array $file Инфо о файла в формате $_FILES
  * @return null|string Имя файла
  */
 static function save_file($entity, $file)
 {
     // Обработка файла у объекта и его свойств
     $f = File::fileInfo($file['tmp_name']);
     $name = ($f['back'] ? '../' : '') . $entity->name();
     // расширение
     if (empty($file['name'])) {
         if ($f['ext']) {
             $name .= '.' . $f['ext'];
         }
     } else {
         $f = File::fileInfo($file['name']);
         if ($f['ext']) {
             $name .= '.' . $f['ext'];
         }
     }
     //
     $path = $entity->dir(true) . $name;
     if ($file['tmp_name'] != $path) {
         if (!File::upload($file['tmp_name'], $path)) {
             // @todo Проверить безопасность?
             // Копирование, если объект-файл создаётся из уже имеющихся на сервере файлов, например при импорте каталога
             if (!File::copy($file['tmp_name'], $path)) {
                 $name = null;
             }
         }
     }
     return $name;
 }