Back to PhocacartFileUpload class

Method realSingleUpload

public static
realSingleUpload
(mixed $frontEnd = 0)

Method realSingleUpload - Source code

public static function realSingleUpload($frontEnd = 0)
{
    $app = Factory::getApplication();
    $paramsC = PhocacartUtils::getComponentParameters();
    //	$chunkMethod 	= $paramsC->get( 'multiple_upload_chunk', 0 );
    //	$uploadMethod 	= $paramsC->get( 'multiple_upload_method', 1 );
    $overwriteExistingFiles = $paramsC->get('overwrite_existing_files', 0);
    Session::checkToken('request') or jexit('ERROR: ' . Text::_('COM_PHOCACART_INVALID_TOKEN'));
    $app->allowCache(false);
    $file = Factory::getApplication()->input->files->get('Filedata', null, 'raw');
    //$file 			= J R equest::getVar( 'Filedata', '', 'files', 'array' );
    $folder = Factory::getApplication()->input->get('folder', '', '', 'path');
    $format = Factory::getApplication()->input->get('format', 'html', '', 'cmd');
    $return = JFactory::getApplication()->input->get('return-url', null, 'post', 'base64');
    //includes field
    $viewBack = Factory::getApplication()->input->get('viewback', '', '', '');
    $manager = Factory::getApplication()->input->get('manager', 'file', '', 'string');
    $tab = Factory::getApplication()->input->get('tab', '', '', 'string');
    $field = Factory::getApplication()->input->get('field');
    $errUploadMsg = '';
    $folderUrl = $folder;
    $tabUrl = '';
    $component = Factory::getApplication()->input->get('option', '', '', 'string');
    $path = PhocacartPath::getPath($manager);
    // we use viewback to get right path
    // In case no return value will be sent (should not happen)
    if ($component != '' && $frontEnd == 0) {
        $componentUrl = 'index.php?option=' . $component;
    } else {
        $componentUrl = 'index.php';
    }
    if ($tab != '') {
        $tabUrl = '&tab=' . (string) $tab;
    }
    $ftp = ClientHelper::setCredentialsFromRequest('ftp');
    // Make the filename safe
    if (isset($file['name'])) {
        $file['name'] = File::makeSafe($file['name']);
    }
    if (isset($folder) && $folder != '') {
        $folder = $folder . '/';
    }
    // All HTTP header will be overwritten with js message
    if (isset($file['name'])) {
        $filepath = Path::clean($path['orig_abs_ds'] . $folder . strtolower($file['name']));
        if (!PhocacartFileUpload::canUpload($file, $errUploadMsg, $manager, $frontEnd)) {
            if ($errUploadMsg == 'COM_PHOCACART_WARNFILETOOLARGE') {
                $errUploadMsg = Text::_($errUploadMsg) . ' (' . PhocacartFile::getFileSizeReadable($file['size']) . ')';
            } else {
                $errUploadMsg = Text::_($errUploadMsg);
            }
            if ($return) {
                $app->enqueueMessage($errUploadMsg, 'error');
                $app->redirect(base64_decode($return) . '&manager=' . (string) $manager . '&folder=' . $folderUrl);
                exit;
            } else {
                $app->enqueueMessage($errUploadMsg, 'error');
                $app->redirect($componentUrl);
                exit;
            }
        }
        if (File::exists($filepath) && $overwriteExistingFiles == 0) {
            if ($return) {
                $app->enqueueMessage(Text::_('COM_PHOCACART_FILE_ALREADY_EXISTS'), 'error');
                $app->redirect(base64_decode($return) . '&manager=' . (string) $manager . '&folder=' . $folderUrl);
                exit;
            } else {
                $app->enqueueMessage(Text::_('COM_PHOCACART_FILE_ALREADY_EXISTS'), 'error');
                $app->redirect($componentUrl);
                exit;
            }
        }
        if (!File::upload($file['tmp_name'], $filepath, false, true)) {
            PhocacartLog::add(2, 'Error uploading file - JFile upload', 0, 'File: ' . $file['name'] . ', File Path: ' . $filepath);
            if ($return) {
                $app->enqueueMessage(Text::_('COM_PHOCACART_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error');
                $app->redirect(base64_decode($return) . '&manager=' . (string) $manager . '&folder=' . $folderUrl);
                exit;
            } else {
                $app->enqueueMessage(Text::_('COM_PHOCACART_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error');
                $app->redirect($componentUrl);
                exit;
            }
        } else {
            if ((int) $frontEnd > 0) {
                return $file['name'];
            }
            if ($return) {
                $app->enqueueMessage(Text::_('COM_PHOCACART_SUCCESS_FILE_UPLOADED'));
                $app->redirect(base64_decode($return) . '&manager=' . (string) $manager . '&folder=' . $folderUrl);
                exit;
            } else {
                $app->enqueueMessage(Text::_('COM_PHOCACART_SUCCESS_FILE_UPLOADED'));
                $app->redirect($componentUrl);
                exit;
            }
        }
    } else {
        PhocacartLog::add(2, 'Error uploading file - Filename does not exist', 0, 'File: File does not exist (Single Upload)');
        $msg = Text::_('COM_PHOCACART_ERROR_UNABLE_TO_UPLOAD_FILE');
        if ($return) {
            $app->enqueueMessage($msg);
            $app->redirect(base64_decode($return) . '&manager=' . (string) $manager . '&folder=' . $folderUrl);
            exit;
        } else {
            if ($viewBack != '') {
                $group = PhocacartUtilsSettings::getManagerGroup($manager);
                $link = 'index.php?option=com_phocacart&view=phocacartmanager&manager=' . (string) $manager . str_replace('&', '&', $group['c']) . '&' . $tabUrl . '&folder=' . $folder . '&field=' . $field;
                $app->enqueueMessage($msg);
                $app->redirect($link);
            } else {
                $app->enqueueMessage($msg, 'error');
                $app->redirect('index.php?option=com_phocacart');
            }
        }
    }
}