<?php use Vn\Lib; use Vn\Lib\UserException; /** * Uploads a access module. */ class AccessVersion extends Vn\Web\JsonRequest { const PARAMS = [ 'appName' ,'newVersion' ]; function run ($db) { // Checks for file errors. $moduleFile = $_FILES['moduleFile']; if (empty ($moduleFile['name'])) throw new UserException (s('File not choosed')); if ($moduleFile['error'] != 0) { switch ($_FILES['image']['error']) { case UPLOAD_ERR_INI_SIZE: $message = 'ErrIniSize'; break; case UPLOAD_ERR_FORM_SIZE: $message = 'ErrFormSize'; break; case UPLOAD_ERR_PARTIAL: $message = 'ErrPartial'; break; case UPLOAD_ERR_NO_FILE: $message = 'ErrNoFile'; break; case UPLOAD_ERR_NO_TMP_DIR: $message = 'ErrNoTmpDir'; break; case UPLOAD_ERR_CANT_WRITE: $message = 'ErrCantWrite'; break; case UPLOAD_ERR_EXTENSION: $message = 'ErrExtension'; break; default: $message = 'ErrDefault'; break; } throw new Lib\Exception (s($message)); } // Defining parameters $appName = $_REQUEST['appName']; $newVersion = $_REQUEST['newVersion']; $uploadDir = '/mnt/cluster/vn-access'; $uploadFile = "$uploadDir/$appName.7z"; $archiveDir = "$uploadDir/.archive/$appName"; $archiveFile = "$archiveDir/$newVersion.7z"; // Updates the application copy ($moduleFile['tmp_name'], $archiveFile); rename ($moduleFile['tmp_name'], $uploadFile); return TRUE; } }