public static function realSingleUpload( $frontEnd = 0 ) { $paramsC = JComponentHelper::getParams('com_phocadownload'); // $chunkMethod = $paramsC->get( 'multiple_upload_chunk', 0 ); // $uploadMethod = $paramsC->get( 'multiple_upload_method', 4 ); $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); $app = JFactory::getApplication(); JRequest::checkToken( 'request' ) or jexit( 'ERROR: '. JTEXT::_('COM_PHOCADOWNLOAD_INVALID_TOKEN')); JResponse::allowCache(false); $file = JRequest::getVar( 'Filedata', '', 'files', 'array' ); $folder = JRequest::getVar( 'folder', '', '', 'path' ); $format = JRequest::getVar( 'format', 'html', '', 'cmd'); $return = JRequest::getVar( 'return-url', null, 'post', 'base64' );//includes field $viewBack = JRequest::getVar( 'viewback', '', '', '' ); $manager = JRequest::getVar( 'manager', 'file', '', 'string' ); $tab = JRequest::getVar( 'tab', '', '', 'string' ); $field = JRequest::getVar( 'field' ); $errUploadMsg = ''; $folderUrl = $folder; $tabUrl = ''; $component = JRequest::getVar( 'option', '', '', 'string' ); $path = PhocaDownloadPath::getPathSet($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 = JClientHelper::setCredentialsFromRequest('ftp'); // Make the filename safe if (isset($file['name'])) { $file['name'] = JFile::makeSafe($file['name']); } if (isset($folder) && $folder != '') { $folder = $folder . DS; } // All HTTP header will be overwritten with js message if (isset($file['name'])) { $filepath = JPath::clean($path['orig_abs_ds'].$folder.strtolower($file['name'])); $filepath = JPath::clean($path['orig_abs_ds'].$folder.$file['name']); if (!PhocaDownloadFileUpload::canUpload( $file, $errUploadMsg, $manager, $frontEnd )) { if ($errUploadMsg == 'COM_PHOCADOWNLOAD_WARNING_FILE_TOOLARGE') { $errUploadMsg = JText::_($errUploadMsg) . ' ('.PhocaDownloadFileUpload::getFileSizeReadable($file['size']).')'; } /* else if ($errUploadMsg == 'COM_PHOCADOWNLOAD_WARNING_FILE_TOOLARGE_RESOLUTION') { $imgSize = phocadownloadImage::getImageSize($file['tmp_name']); $errUploadMsg = JText::_($errUploadMsg) . ' ('.(int)$imgSize[0].' x '.(int)$imgSize[1].' px)'; } */ else { $errUploadMsg = JText::_($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, $errUploadMsg); exit; } } if (JFile::exists($filepath) && $overwriteExistingFiles == 0) { if ($return) { $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl, JText::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS'), 'error'); exit; } else { $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS'), 'error'); $app->redirect($componentUrl); exit; } } if (!JFile::upload($file['tmp_name'], $filepath, false, true)) { if ($return) { $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error'); $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); exit; } else { $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error'); $app->redirect($componentUrl); exit; } } else { if ((int)$frontEnd > 0) { return $file['name']; } if ($return) { $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD')); $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); exit; } else { $app->enqueueMessage( JText::_('COM_PHOCADOWNLOAD_SUCCESS_FILE_UPLOAD')); $app->redirect($componentUrl); exit; } } } else { $msg = JText::_('COM_PHOCADOWNLOAD_ERROR_UNABLE_TO_UPLOAD_FILE'); if ($return) { $app->enqueueMessage( $msg, 'error'); $app->redirect(base64_decode($return).'&manager='.(string)$manager.'&folder='.$folderUrl); exit; } else { if($viewBack != '') { $group = PhocaDownloadSettings::getManagerGroup($manager); $link = 'index.php?option=com_phocadownload&view=phocadownloadmanager&manager='.(string)$manager .str_replace('&', '&', $group['c']).'&'.$tabUrl.'&folder='.$folder.'&field='.$field; $app->enqueueMessage( $msg, 'error'); $app->redirect($link); } else { $app->enqueueMessage( $msg, 'error'); $app->redirect('index.php?option=com_phocadownload'); } } } }