Пример #1
0
 public function start($fileName = 'upload', $rootDir = UPLOADS_DIR)
 {
     if (isset($this->settings['source'])) {
         $fileName = $this->settings['source'];
     }
     if (isset($this->settings['target'])) {
         $rootDir = $this->settings['target'];
     }
     if (!is_string($fileName)) {
         return Error::set(lang('Error', 'stringParameter', 'fileName'));
     }
     if (!is_string($rootDir)) {
         $rootDir = UPLOADS_DIR;
     }
     // Dosya yükleme ayarları yapılmamışsa
     // Varsayılan ayarları kullanması için.
     if ($this->settingStatus === false) {
         $this->settings();
     }
     $this->file = $fileName;
     $root = $rootDir;
     if (!isset($_FILES[$fileName]['name'])) {
         $this->manuelError = 4;
         return false;
     }
     $name = $_FILES[$fileName]['name'];
     $encryption = '';
     if (isset($this->settings['prefix'])) {
         $encryption = $this->settings['prefix'];
     }
     if (isset($this->settings['extensions'])) {
         $extensions = explode("|", $this->settings['extensions']);
     }
     $source = $_FILES[$fileName]['tmp_name'];
     // Çoklu yükleme yapılıyorsa.
     if (is_array($name)) {
         if (empty($name[0])) {
             $this->manuelError = 4;
             return false;
         }
         for ($index = 0; $index < count($name); $index++) {
             $src = $source[$index];
             $nm = $name[$index];
             if ($this->settings['encryption']) {
                 if (!isset($this->settings['prefix'])) {
                     $encryption = substr(Encode::type(uniqid(rand()), $this->settings['encryption']), 0, $this->settings['encodeLength']) . '-';
                 }
             }
             if ($this->settings['convertName'] === true) {
                 $nm = Convert::urlWord($nm);
             }
             $target = $root . '/' . $encryption . $nm;
             if (isset($this->settings['extensions']) && !in_array(extension($nm), $extensions)) {
                 $this->extensionControl = lang('Upload', 'extensionError');
             } elseif (isset($this->settings['maxsize']) && $this->settings['maxsize'] < filesize($src)) {
                 $this->manuelError = 10;
             } else {
                 if (!is_file($rootDir)) {
                     move_uploaded_file($src, $target);
                 } else {
                     $this->manuelError = 9;
                 }
             }
         }
     } else {
         if ($this->settings['encryption']) {
             if (!isset($this->settings['prefix'])) {
                 $encryption = substr(Encode::type(uniqid(rand()), $this->settings['encryption']), 0, $this->settings['encodeLength']) . '-';
             }
         }
         if ($this->settings['convertName'] === true) {
             $name = Convert::urlWord($name);
         }
         if (empty($_FILES[$fileName]['name'])) {
             $this->manuelError = 4;
             return false;
         }
         if (isset($this->settings['maxsize']) && $this->settings['maxsize'] < filesize($source)) {
             $this->manuelError = 10;
             return false;
         }
         $target = $root . '/' . $encryption . $name;
         $this->encodeName = $encryption . $name;
         if (isset($this->settings['extensions']) && !in_array(extension($name), $extensions)) {
             $this->extensionControl = lang('Upload', 'extensionError');
         } else {
             if (!is_file($rootDir)) {
                 move_uploaded_file($source, $target);
             } else {
                 $this->manuelError = 9;
             }
         }
     }
 }