Пример #1
0
 function upload_file($origin, $dest, $tmp_name, $overwrite = false)
 {
     FileManagerController::_checkPermission();
     $origin = basename($origin);
     $full_dest = $dest . $origin;
     $file_name = $origin;
     for ($i = 1; file_exists($full_dest); $i++) {
         if ($overwrite) {
             unlink($full_dest);
             continue;
         }
         $file_ext = strpos($origin, '.') === false ? '' : '.' . substr(strrchr($origin, '.'), 1);
         $file_name = substr($origin, 0, strlen($origin) - strlen($file_ext)) . '_' . $i . $file_ext;
         $full_dest = $dest . $file_name;
     }
     if (move_uploaded_file($tmp_name, $full_dest)) {
         //Add Latest to database
         $data = $_POST['latest'];
         Flash::set('post_data', (object) $data);
         $last_latest = Record::query('Select sequence from ' . TABLE_PREFIX . 'latest order by sequence desc LIMIT 0,1');
         $last_latest = $last_latest->fetchObject();
         $last_seq = $last_latest->sequence;
         $latest = new Latest($data);
         $latest->filename = $file_name;
         $latest->source = URL_PUBLIC . 'public/latest/' . $file_name;
         $latest->sequence = $last_seq + 1;
         if (!$latest->save()) {
             Flash::set('error', __('Latest slider has not been added. Name must be unique!'));
             redirect(get_url('latest', 'add'));
         } else {
             Flash::set('success', __('Latest slider has been added!'));
             //Observer::notify('snippet_after_add', $latest);
         }
         // change mode of the dire to 0644 by default
         chmod($full_dest, 0644);
         return $file_name;
     }
     return false;
 }