public function uploadAction()
 {
     $user = Zend_Auth::getInstance()->getIdentity();
     $result = false;
     // move upload file
     if ($this->getRequest()->isPost() && !empty($_FILES)) {
         // check extension
         $name = $_FILES['upload']['name'];
         if (strpos(strrev($name), strrev('.sqlite')) !== 0) {
             $this->status->setStatusMessage(t('There was a problem with file types <code>' . $name . '</code>'));
             return;
         }
         $name = implode('.', array($user->id, $user->last_name, $user->first_name, date('Y-m-d'), $_FILES['upload']['name']));
         $path = rtrim(Globals::$BASE_PATH, '/') . '/files_sync/';
         if (!file_exists($path) && !mkdir($path, 0777, true)) {
             // make storage dir
             $this->status->setStatusMessage(t('There was a problem creating <code>' . $path . '</code>'));
             return;
         }
         $result = move_uploaded_file($_FILES['upload']['tmp_name'], $path . $name);
         if (!$result) {
             $this->status->setStatusMessage(t('There was a problem moving files <code>' . $path . $name . '</code>'));
             return;
         }
     }
     // create entry for file
     if ($result) {
         // source info
         $db = SyncCompare::getDesktopConnectionParams('_app', $path . $name);
         try {
             $_app = new ITechTable($db);
             $_app = $_app->fetchAll()->current();
             //look for previous sync time
             $previous_files = new SyncFile();
             $previous = $previous_files->getAdapter()->query("SELECT * FROM syncfile WHERE application_id = '" . $_app->app_id . "' AND timestamp_completed IS NOT NULL ORDER BY timestamp_completed DESC LIMIT 1");
             $previous_timestamp = $_app->init_timestamp;
             //first time
             if ($previous) {
                 $previous = $previous->fetchAll();
                 if ($previous) {
                     $previous_timestamp = $previous[0]['timestamp_completed'];
                 }
             }
             $save = array('filename' => $name, 'filepath' => $path, 'application_id' => $_app->app_id, 'application_version' => 1, 'timestamp_last_sync' => $previous_timestamp);
             // dest info
             $syncFile = new SyncFile();
             $result = $syncFile->insert($save);
             if ($result) {
                 $newname = $result . '.' . $name;
                 $good = rename($path . $name, $path . $newname);
                 if ($good) {
                     $syncFile->update(array('filename' => $newname), 'id = ' . $result);
                 }
             }
             if (!$result) {
                 $msg = "Could not save file.";
                 $this->status->setStatusMessage($msg);
             } else {
                 $this->status->setStatusMessage(t('Sync database file uploaded.'));
                 $this->_redirect('sync/search/fid/' . $result);
                 // .'/startjob/1/outputType/text' search for db changes
             }
         } catch (Exception $e) {
             $msg = t('Invalid desktop database file');
         }
     }
 }