Craft\Formerly_SubmissionsController::actionPostSubmission PHP Method

actionPostSubmission() public method

    public function actionPostSubmission()
    {
        $this->requirePostRequest();
        $submission = new Formerly_SubmissionModel();
        $submission->formId = craft()->request->getRequiredPost('formId');
        //check file upload for errors, craft will not be happy otherwise
        $errors = false;
        if (sizeof($_FILES) > 0 && array_key_exists('questions', $_FILES) && array_key_exists('error', $_FILES['questions'])) {
            foreach ($_FILES['questions']['error'] as $key => $error) {
                switch ($error) {
                    case UPLOAD_ERR_OK:
                        break;
                    case UPLOAD_ERR_NO_FILE:
                        break;
                    case UPLOAD_ERR_INI_SIZE:
                    case UPLOAD_ERR_FORM_SIZE:
                        $submission->addError($key, 'File size exceeded size limit.');
                        $errors = true;
                        //clear key so setContentFromPost works
                        unset($_FILES['questions']['name'][$key]);
                        unset($_FILES['questions']['error'][$key]);
                        unset($_FILES['questions']['type'][$key]);
                        unset($_FILES['questions']['size'][$key]);
                        unset($_FILES['questions']['tmp_name'][$key]);
                        break;
                    default:
                        $submission->addError($key, 'File upload failed.');
                        //clear key so setContentFromPost works
                        unset($_FILES['questions']['name'][$key]);
                        unset($_FILES['questions']['error'][$key]);
                        unset($_FILES['questions']['type'][$key]);
                        unset($_FILES['questions']['size'][$key]);
                        unset($_FILES['questions']['tmp_name'][$key]);
                        $errors = true;
                }
            }
            if ($errors) {
                $submission->setContentFromPost('questions');
                craft()->urlManager->setRouteVariables(array('submission' => $submission));
                return;
            }
        }
        $submission->setContentFromPost('questions');
        if (craft()->formerly_submissions->postSubmission($submission)) {
            if (craft()->request->isAjaxRequest()) {
                $this->returnJson(array('ok' => 'yes', 'id' => $submission->id));
            } else {
                $this->redirectToPostedUrl($submission);
            }
        } else {
            if (craft()->request->isAjaxRequest()) {
                $this->returnJson(array('ok' => 'no', 'errors' => $submission->getErrors()));
            } else {
                craft()->urlManager->setRouteVariables(array('submission' => $submission));
            }
        }
    }