예제 #1
0
 public function getPreparedName($dirUnderWebroot = false)
 {
     if (!$this->_preparedName) {
         if (!$dirUnderWebroot) {
             $dirUnderWebroot = self::DIR_UNDER_WEBROOT;
         }
         $translitedName = Translit::file($this->baseName);
         // by default
         $fileName = '/' . $dirUnderWebroot . '/' . $translitedName . '.' . $this->extension;
         $rand_dir = rand(1, 100);
         $full_dir = Yii::getAlias('@webroot') . '/' . $dirUnderWebroot . '/' . $rand_dir . '/';
         if (!is_dir($full_dir)) {
             mkdir($full_dir);
         }
         if (is_dir($full_dir)) {
             $fileName = '/' . $dirUnderWebroot . '/' . $rand_dir . '/' . $translitedName . '.' . $this->extension;
             //now find duplicates
             if (is_file(Yii::getAlias('@webroot') . $fileName)) {
                 $cnt = 1;
                 $newFileName = '/' . $dirUnderWebroot . '/' . $rand_dir . '/' . $translitedName . '(' . $cnt . ').' . $this->extension;
                 while (is_file(Yii::getAlias('@webroot') . $newFileName)) {
                     $cnt++;
                     $newFileName = '/' . $dirUnderWebroot . '/' . $rand_dir . '/' . $translitedName . '(' . $cnt . ').' . $this->extension;
                 }
                 $fileName = $newFileName;
             }
         }
         $this->_preparedName = $fileName;
     }
     return $this->_preparedName;
 }