Back to PhocacartFileUpload class

Method submitItemUpload

public static
submitItemUpload
(mixed $files, mixed $data, mixed &$fileData, mixed $type = 'image')

Method submitItemUpload - Source code

public static function submitItemUpload($files, $data, &$fileData, $type = 'image')
{
    $pC = PhocacartUtils::getComponentParameters();
    $submit_item_upload_image_maxsize = $pC->get('submit_item_upload_image_maxsize', 512000);
    $submit_item_upload_image_count = $pC->get('submit_item_upload_image_count', 1);
    $app = Factory::getApplication();
    $path = PhocacartPath::getPath('submititem');
    $folder = $data['upload_folder'];
    if (!empty($files)) {
        $i = 1;
        foreach ($files as $k => $v) {
            if (isset($v['name'])) {
                $errUploadMsg = '';
                if (!PhocacartFileUpload::canUpload($v, $errUploadMsg, 'submitimage', 1)) {
                    if ($errUploadMsg == 'COM_PHOCACART_WARNFILETOOLARGE') {
                        $errUploadMsg = Text::_($errUploadMsg) . ' (' . PhocacartFile::getFileSizeReadable($v['size']) . ')';
                    } else {
                        $errUploadMsg = Text::_($errUploadMsg);
                        if ($errUploadMsg != '') {
                            if (isset($v['name']) && $v['name'] != '') {
                                $errUploadMsg = $errUploadMsg . ' (' . $v['name'] . ')';
                            }
                        }
                    }
                    $app->enqueueMessage($errUploadMsg, 'error');
                    return false;
                }
                // Specific check for specific form field types
                if ((int) $submit_item_upload_image_maxsize > 0 && (int) $v['size'] > (int) $submit_item_upload_image_maxsize) {
                    $app->enqueueMessage(Text::_('COM_PHOCACART_WARNFILETOOLARGE'), 'error');
                    return false;
                }
                if ($i > (int) $submit_item_upload_image_count) {
                    // Don't allow to upload any other file and return the current data
                    return true;
                }
                $i++;
                $ext = PhocacartFile::getExtension($v['name']);
                $fileNameToken = PhocacartUtils::getToken('folder');
                $fileNameTokenExt = $fileNameToken . '.' . $ext;
                $folderPath = Path::clean($path['orig_abs_ds'] . $folder);
                $filePath = Path::clean($path['orig_abs_ds'] . $folder . '/' . $fileNameTokenExt);
                PhocacartFile::createUploadFolder('');
                // Create Main Upload Folder if not exists
                PhocacartFile::createUploadFolder($folder);
                if (File::exists($filePath)) {
                    $app->enqueueMessage(Text::_('COM_PHOCACART_FILE_ALREADY_EXISTS'), 'error');
                    return false;
                }
                if (!File::upload($v['tmp_name'], $filePath, false, true)) {
                    PhocacartLog::add(2, 'Error uploading file - JFile upload (Submit Item)', 0, 'File: ' . strip_tags(htmlspecialchars($v['name'])) . ', File Path: ' . $filePath);
                    $app->enqueueMessage(Text::_('COM_PHOCACART_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error');
                    return false;
                } else {
                    //$app->enqueueMessage(JText::_('COM_PHOCACART_SUCCESS_FILE_UPLOADED'));
                    $fileData[$fileNameToken] = array();
                    $fileData[$fileNameToken]['id'] = $fileNameToken;
                    $fileData[$fileNameToken]['name'] = $v['name'];
                    $fileData[$fileNameToken]['size'] = $v['size'];
                    $fileData[$fileNameToken]['nametoken'] = $fileNameTokenExt;
                    $fileData[$fileNameToken]['fullpath'] = $filePath;
                    // Success File added go further with foreach and next files
                }
            } else {
                PhocacartLog::add(2, 'Error uploading file - Filename does not exist (Submit Item)', 0, 'File: File does not exist (Submit Item)');
                $msg = Text::_('COM_PHOCACART_ERROR_UNABLE_TO_UPLOAD_FILE');
                $app->enqueueMessage($msg);
                return false;
            }
        }
    }
    return true;
}