public function uploadAction() { try { if (empty($_FILES) || empty($_FILES['module']['name'])) { throw new Exception("No file has been sent"); } $adapter = new Zend_File_Transfer_Adapter_Http(); $adapter->setDestination(Core_Model_Directory::getTmpDirectory(true)); // $adapter->addValidator('MimeType', false, 'application/zip'); if ($adapter->receive()) { $file = $adapter->getFileInfo(); $parser = new Installer_Model_Installer_Module_Parser(); if ($parser->setFile($file['module']['tmp_name'])->check()) { $infos = pathinfo($file['module']['tmp_name']); $filename = $infos['filename']; $this->_redirect('installer/module/install', array('module_name' => $filename)); } else { $messages = $parser->getErrors(); $message = implode("\n", $messages); throw new Exception($this->_($message)); } } else { $messages = $adapter->getMessages(); if (!empty($messages)) { $message = implode("\n", $messages); } else { $message = $this->_("An error occurred during the process. Please try again later."); } throw new Exception($message); } } catch (Exception $e) { $this->getSession()->addError($e->getMessage()); $this->_redirect('installer/module'); } }
public function copyAction() { if ($file = $this->getRequest()->getParam("file")) { $data = array(); try { $filename = base64_decode($file); $file = Core_Model_Directory::getTmpDirectory(true) . "/{$filename}"; if (!file_exists($file)) { throw new Exception($this->_("The file %s does not exist", $filename)); } $parser = new Installer_Model_Installer_Module_Parser(); if ($parser->setFile($file)->copy()) { $data = array("success" => 1); } else { $messages = $parser->getErrors(); $message = implode("\n", $messages); throw new Exception($this->_($message)); } } catch (Exception $e) { $data = array("error" => 1, "message" => $e->getMessage()); } $this->_sendHtml($data); } }