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'); } } } }
echo '<li><a href="#upload" data-toggle="tab">' . $label . '</a></li>'; if ((int) $this->t['enablemultiple'] > 0) { $label = JHtml::_('image', $this->t['i'] . 'icon-16-upload-multiple.png', '') . ' ' . JText::_($this->t['l'] . '_MULTIPLE_UPLOAD'); echo '<li><a href="#multipleupload" data-toggle="tab">' . $label . '</a></li>'; } $label = JHtml::_('image', $this->t['i'] . 'icon-16-folder.png', '') . ' ' . JText::_($this->t['l'] . '_CREATE_FOLDER'); echo '<li><a href="#createfolder" data-toggle="tab">' . $label . '</a></li>'; echo '</ul>'; echo '<div class="tab-content">' . "\n"; echo '<div class="tab-pane" id="upload">' . "\n"; echo $this->loadTemplate('upload'); echo '</div>' . "\n"; echo '<div class="tab-pane" id="multipleupload">' . "\n"; echo $this->loadTemplate('multipleupload'); echo '</div>' . "\n"; echo '<div class="tab-pane" id="createfolder">' . "\n"; //echo PhocaDownloadFileUpload::renderCreateFolder($this->session->getName(), $this->session->getId(), $this->currentFolder, 'phocadownloadmanager', 'manager='.$this->manager.'&tab='.$this->t['currenttab']['upload'].'&field='. $this->field ); echo PhocaDownloadFileUpload::renderCreateFolder($this->session->getName(), $this->session->getId(), $this->currentFolder, 'phocadownloadmanager', 'manager=' . $this->manager . '&tab=createfolder&field=' . $this->field); echo '</div>' . "\n"; echo '</div>' . "\n"; } echo '</div>'; if ($this->t['tab'] != '') { $jsCt = 'a[href=#' . $this->t['tab'] . ']'; } else { $jsCt = 'a:first'; } echo '<script type="text/javascript">'; echo ' jQuery(\'#configTabs ' . $jsCt . '\').tab(\'show\');'; // Select first tab echo '</script>';
<?php defined('_JEXEC') or die('Restricted access'); echo '<div id="' . $this->t['c'] . '-upload" class="ph-in">'; echo '<div id="upload-noflash" class="actions">'; echo '<form action="' . $this->t['su_url'] . '" id="uploadFormU" method="post" enctype="multipart/form-data">'; if ($this->t['ftp']) { echo PhocaDownloadFileUpload::renderFTPaccess(); } echo '<div class="control-label ph-head-form">' . JText::_($this->t['l'] . '_UPLOAD_FILE') . ' [ ' . JText::_($this->t['l'] . '_MAX_SIZE') . ': ' . $this->t['uploadmaxsizeread'] . '] </div>'; echo $this->t['su_output']; echo '</form>'; echo '</div>'; echo '</div>';
function singleFileUpload(&$errUploadMsg, $file, $post) { $app = JFactory::getApplication();; JRequest::checkToken( 'request' ) or jexit( 'Invalid Token' ); jimport('joomla.client.helper'); $user = JFactory::getUser(); $ftp = JClientHelper::setCredentialsFromRequest('ftp'); $path = PhocaDownloadPath::getPathSet(); $folder = $app->input->get( 'folder', '', '', 'path' ); $format = $app->input->get( 'format', 'html', '', 'cmd'); $return = $app->input->get( 'return-url', null, 'post', 'base64' ); $viewBack = $app->input->get( 'viewback', '', 'post', 'string' ); //$catid = $app->input->get( 'catid', '', '', 'int' ); $paramsC = JComponentHelper::getParams('com_phocadownload') ; $overwriteExistingFiles = $paramsC->get( 'overwrite_existing_files', 0 ); // USER RIGHT - UPLOAD - - - - - - - - - - - // 2, 2 means that user access will be ignored in function getUserRight for display Delete button $rightDisplayUpload = 0; $catAccess = PhocaDownloadAccess::getCategoryAccess((int)$post['catidfiles']); if (!empty($catAccess)) { $rightDisplayUpload = PhocaDownloadAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), 1, 0); } // - - - - - - - - - - - - - - - - - - - - - - /*$post['sectionid'] = $this->getSection((int)$post['catidfiles']); if(!$post['sectionid']) { $errUploadMsg = JText::_('COM_PHOCADOWNLOAD_WRONG_SECTION'); return false; }*/ //$userFolder = substr(md5($user->username),0, 10); $userFolder = PhocaDownloadUtils::cleanFolderUrlName(htmlspecialchars(strip_tags($user->username))); if ($rightDisplayUpload == 1) { // Make the filename safe if (isset($file['name'])) { $file['name'] = JFile::makeSafe($file['name']); } if($file['tmp_name'] == '') { $errUploadMsg = JText::_("COM_PHOCADOWNLOAD_ERROR_SERVER_NOT_ABLE_TO_STORE_FILE_TEMP_FOLDER"); return false; } if (isset($file['name'])) { $filepath = JPath::clean($path['orig_abs_user_upload']. DS. $userFolder . DS.$file['name']); $filepathUserFolder = JPath::clean($path['orig_abs_user_upload']. DS. $userFolder); if (!PhocaDownloadFileUpload::canUpload( $file, $errUploadMsg, 'file', 2 )) { if ($errUploadMsg == 'COM_PHOCADOWNLOAD_WARNUSERFILESTOOLARGE') { $errUploadMsg = JText::_($errUploadMsg) . ' ('.PhocaDownloadFile::getFileSizeReadable($file['size']).')'; } else { $errUploadMsg = JText::_($errUploadMsg); } return false; } if (JFile::exists($filepath) && $overwriteExistingFiles == 0) { $errUploadMsg = JText::_("COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS"); return false; } // Overwrite file and add no new item to database $fileExists = 0; if (JFile::exists($filepath) && $overwriteExistingFiles == 1) { $fileExists = 1; } if (!JFile::upload($file['tmp_name'], $filepath, false, true)) { $errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE"); return false; } else { // Saving file name into database with relative path if (!JFile::exists($filepathUserFolder . DS ."index.html")) { $data = "<html>\n<body bgcolor=\"#FFFFFF\">\n</body>\n</html>"; JFile::write($filepathUserFolder . DS ."index.html", $data); } $file['namepap'] = $file['name']; $file['name'] = 'userupload/'.$userFolder.'/' . $file['name']; $succeeded = false; // ================================================= // Make a copy for play and preview $papCopy = $paramsC->get( 'pap_copy', 0 ); if ($papCopy == 1 || $papCopy == 3) { $canPlay = PhocaDownloadFile::canPlay($file['namepap']); $canPreview = PhocaDownloadFile::canPreview($file['namepap']); $filepathPAP = JPath::clean($path['orig_abs_user_upload_pap']. DS. $userFolder . DS.$file['namepap']); $filepathUserFolderPAP = JPath::clean($path['orig_abs_user_upload_pap']. DS. $userFolder); if ($canPlay || $canPreview) { $uploadPAP = 1;// upload file for preview and play if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 0) { //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_FILE_ALREADY_EXISTS"); //return false; $uploadPAP = 0; // don't upload if it exists, it is not main file, don't do false and exit } // Overwrite file and add no new item to database $fileExistsPAP = 0; if (JFile::exists($filepathPAP) && $overwriteExistingFiles == 1) { $fileExistsPAP = 1; } if ($uploadPAP == 0) { } else { if (!JFolder::exists($filepathUserFolderPAP)) { if (JFolder::create($filepathUserFolderPAP)) { $data = "<html>\n<body bgcolor=\"#FFFFFF\">\n</body>\n</html>"; JFile::write($filepathUserFolderPAP . DS ."index.html", $data); } // else { //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_CREATE_FOLDER"); //return false; //} } if (!JFile::copy($filepath, $filepathPAP)) { //$errUploadMsg = JText::_("COM_PHOCADOWNLOAD_UNABLE_TO_UPLOAD_FILE"); //return false; } else { // Saving file name into database with relative path if (!JFile::exists($filepathUserFolderPAP . DS ."index.html")) { $data = "<html>\n<body bgcolor=\"#FFFFFF\">\n</body>\n</html>"; JFile::write($filepathUserFolderPAP . DS ."index.html", $data); } if ($canPlay == 1) { $post['filename_play'] = 'userupload/'.$userFolder.'/' . $file['namepap']; } else if ($canPreview == 1) { $post['filename_preview'] = 'userupload/'.$userFolder.'/' . $file['namepap']; } } } } } // ============================================== if ($this->_save($post, $file['name'], $errUploadMsg, $fileExists)) { return true; } else { return false; } } } else { $errUploadMsg = JText::_("COM_PHOCADOWNLOAD_WARNFILETYPE"); $redirectUrl = $return; return false; } } else { $errUploadMsg = JText::_("COM_PHOCADOWNLOAD_NOT_AUTHORISED_TO_UPLOAD"); return false; } return false; }
<?php defined('_JEXEC') or die('Restricted access'); echo '<div id="'.$this->t['c'].'-upload" class="ph-in">'; echo '<div id="upload-noflash" class="actions">'; echo '<form action="'. $this->t['su_url'] .'" id="uploadFormU" method="post" enctype="multipart/form-data">'; if ($this->t['ftp']) { echo PhocaDownloadFileUpload::renderFTPaccess();} echo '<div class="control-label ph-head-form">'. JText::_( $this->t['l'].'_UPLOAD_FILE' ).' [ '. JText::_( $this->t['l'].'_MAX_SIZE' ).': '.$this->t['uploadmaxsizeread'].'] </div>'; echo $this->t['su_output']; echo '</form>'; echo '</div>'; echo '</div>'; ?>
function upload() { $result = PhocaDownloadFileUpload::realSingleUpload(); return true; }