open($path) === TRUE) {
//make all the folders
for($i = 0; $i < $zip->numFiles; $i++)
{
$OnlyFileName = $zip->getNameIndex($i);
$FullFileName = $zip->statIndex($i);
if (substr($FullFileName['name'], -1, 1) =="/")
{
create_folder($base_folder.$FullFileName['name']);
}
}
//unzip into the folders
for($i = 0; $i < $zip->numFiles; $i++)
{
$OnlyFileName = $zip->getNameIndex($i);
$FullFileName = $zip->statIndex($i);
if (!(substr($FullFileName['name'], -1, 1) =="/"))
{
$fileinfo = pathinfo($OnlyFileName);
if(in_array(strtolower($fileinfo['extension']),$ext))
{
copy('zip://'. $path .'#'. $OnlyFileName , $base_folder.$FullFileName['name'] );
}
}
}
$zip->close();
}
else {
die(lang_Zip_No_Extract);
}
break;
case "gz":
$p = new PharData($path);
$p->decompress(); // creates files.tar
break;
case "tar":
// unarchive from the tar
$phar = new PharData($path);
$phar->decompressFiles();
$files = array();
check_files_extensions_on_phar( $phar, $files, '', $ext );
$phar->extractTo( $current_path.fix_dirname( $_POST['path'] )."/", $files, TRUE );
break;
default:
die(lang_Zip_Invalid);
}
break;
case 'media_preview':
$preview_file = $_GET["file"];
$info = pathinfo($preview_file);
?>
Update Required
To play the media you will need to either update your browser to a recent version or update your
Flash plugin.
';
echo $ret;
}
break;
case 'get_lang':
if (!file_exists('lang/languages.php')){
die(lang_Lang_Not_Found);
}
require_once('lang/languages.php');
if (!isset($languages) || !is_array($languages)){
die(lang_Lang_Not_Found);
}
$curr = $_SESSION['RF']['language'];
$ret = '';
echo $ret;
break;
case 'change_lang':
$choosen_lang = $_POST['choosen_lang'];
if (!file_exists('lang/'.$choosen_lang.'.php')) {
die(lang_Lang_Not_Found);
}
$_SESSION['RF']['language'] = $choosen_lang;
$_SESSION['RF']['language_file'] = 'lang/'.$choosen_lang.'.php';
break;
case 'get_file': // preview or edit
$sub_action = $_GET['sub_action'];
if ($sub_action != 'preview' && $sub_action != 'edit'){
die("wrong action");
}
$selected_file = ($sub_action == 'preview' ? $_GET['file'] : $current_path.$_POST['path']);
$info = pathinfo($selected_file);
if (!file_exists($selected_file)) {
die(lang_File_Not_Found);
}
$is_allowed = ($sub_action == 'preview' ? $preview_text_files : $edit_text_files);
$allowed_file_exts = ($sub_action == 'preview' ? $previewable_text_file_exts : $editable_text_file_exts);
if (!isset($allowed_file_exts) || !is_array($allowed_file_exts)){
$allowed_file_exts = array();
}
if (!in_array($info['extension'], $allowed_file_exts)
|| !isset($is_allowed)
|| $is_allowed === FALSE
|| !is_readable($selected_file))
{
die(sprintf(lang_File_Open_Edit_Not_Allowed, ($sub_action == 'preview' ? strtolower(lang_Open) : strtolower(lang_Edit))));
}
// get and sanities
$data = file_get_contents($selected_file);
$data = htmlspecialchars($data);
$data = stripslashes($data);
if ($sub_action == 'preview') {
// echo ''.$info['basename'].'
'.$data.'
';
echo ''.$info['basename'].'
';
}
else {
echo '';
}
break;
default: die('no action passed');
}
}
else
{
die('no action passed');
}
?>