public function processUploadAction()
 {
     $updateFile = new UpdateFile();
     $uploadDir = $updateFile->getUploadDir();
     if (!is_dir($uploadDir)) {
         $msg = $uploadDir . ' directory does not exist';
     } else {
         if (!is_writable($uploadDir)) {
             $msg = $uploadDir . ' directory is not writable';
         } else {
             if (!isset($_FILES['uploadFile'])) {
                 $msg = __('No uploaded file');
             } else {
                 if ($_FILES['uploadFile']['error'] !== 0) {
                     $msg = __('Error in uploading');
                 } else {
                     if (stripos($_FILES['uploadFile']['type'], 'xml') === false) {
                         $msg = __('Invalid file format, must be an XML file.');
                     } else {
                         $file = $_FILES['uploadFile'];
                     }
                 }
             }
         }
     }
     if (isset($msg)) {
         $this->_session->errMsg = $msg;
         throw new Exception($msg);
     }
     $params = $this->_getParam('updateFile');
     $updateFile->channelId = UpdateFile::USER_CHANNEL_ID;
     $updateFile->channel = UpdateFile::USER_CHANNEL;
     $updateFile->active = 1;
     $updateFile->name = $file['name'];
     $updateFile->mimeType = $file['type'];
     $updateFile->md5sum = md5_file($file['tmp_name']);
     $updateFile->description = $params['description'];
     $updateFile->dateTime = date('Y-m-d H:i:s');
     $updateFile->persist();
     move_uploaded_file($file['tmp_name'], $updateFile->getUploadFilename());
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $result = $json->direct(array('updateFileId' => $updateFile->updateFileId), false);
     $this->getResponse()->setHeader('Content-Type', 'text/html');
     $this->view->result = $result;
     $this->render('process-upload');
 }