Files
sterivein/web/tinymce/plugins/filemanager/execute.php
2013-09-18 18:00:44 +02:00

156 lines
5.2 KiB
PHP
Executable File

<?php
include('config/config.php');
if($_SESSION["verify"] != "RESPONSIVEfilemanager") die('forbiden');
include('include/utils.php');
$thumb_pos=strpos($_POST['path_thumb'],$thumbs_base_path);
if($thumb_pos !=0
|| strpos($_POST['path_thumb'],'../',strlen($thumbs_base_path)+$thumb_pos)!==FALSE
|| strpos($_POST['path'],'/')===0
|| strpos($_POST['path'],'../')!==FALSE
|| strpos($_POST['path'],'./')===0)
die('wrong path');
$language_file = 'lang/en_EN.php';
if (isset($_GET['lang']) && $_GET['lang'] != 'undefined' && $_GET['lang']!='') {
$path_parts = pathinfo($_GET['lang']);
if(is_readable('lang/' .$path_parts['basename']. '.php')){
$language_file = 'lang/' .$path_parts['basename']. '.php';
}
}
require_once $language_file;
$base=$current_path;
$path=$current_path.$_POST['path'];
$cycle=true;
$max_cycles=50;
$i=0;
while($cycle && $i<$max_cycles){
$i++;
if($path==$base) $cycle=false;
if(file_exists($path."config.php")){
require_once($path."config.php");
$cycle=false;
}
$path=fix_dirname($path)."/";
$cycle=false;
}
$path=$current_path.$_POST['path'];
$path_thumb=$_POST['path_thumb'];
if(isset($_POST['name'])){
$name=$_POST['name'];
if(strpos($name,'../')!==FALSE) die('wrong name');
}
$info=pathinfo($path);
if(isset($info['extension']) && !in_array($info['extension'], $ext)){
die('wrong extension');
}
if(isset($_GET['action'])){
switch($_GET['action']){
case 'delete_file':
if($delete_files){
unlink($path);
if(file_exists($path_thumb))
unlink($path_thumb);
$info=pathinfo($path);
if($relative_image_creation){
foreach($relative_path_from_current_pos as $k=>$path){
if($path!="" && $path[strlen($path)-1]!="/") $path.="/";
if(file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'])){
unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']);
}
}
}
if($fixed_image_creation){
foreach($fixed_path_from_filemanager as $k=>$path){
if($path!="" && $path[strlen($path)-1]!="/") $path.="/";
$base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if(file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])){
unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']);
}
}
}
}
break;
case 'delete_folder':
if($delete_folders){
if(is_dir($path_thumb))
deleteDir($path_thumb);
if(is_dir($path)){
deleteDir($path);
if($fixed_image_creation){
foreach($fixed_path_from_filemanager as $k=>$paths){
if($paths!="" && $paths[strlen($paths)-1]!="/") $paths.="/";
$base_dir=$paths.substr_replace($path, '', 0, strlen($current_path));
if(is_dir($base_dir))
deleteDir($base_dir);
}
}
}
}
break;
case 'create_folder':
if($create_folders){
create_folder(fix_path($path),fix_path($path_thumb));
}
break;
case 'rename_folder':
if($rename_folders){
$name=fix_filename($name);
if(!empty($name)){
if(!rename_folder($path,$name))
die(lang_Rename_existing_folder);
rename_folder($path_thumb,$name);
if($fixed_image_creation){
foreach($fixed_path_from_filemanager as $k=>$paths){
if($paths!="" && $paths[strlen($paths)-1]!="/") $paths.="/";
$base_dir=$paths.substr_replace($path, '', 0, strlen($current_path));
rename_folder($base_dir,$name);
}
}
}else{
die(lang_Empty_name);
}
}
break;
case 'rename_file':
if($rename_files){
$name=fix_filename($name);
if(!empty($name)){
if(!rename_file($path,$name))
die(lang_Rename_existing_file);
rename_file($path_thumb,$name);
if($fixed_image_creation){
$info=pathinfo($path);
foreach($fixed_path_from_filemanager as $k=>$paths){
if($paths!="" && $paths[strlen($paths)-1]!="/") $paths.="/";
$base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if(file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])){
rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]);
}
}
}
}else{
die(lang_Empty_name);
}
}
break;
default:
die('wrong action');
break;
}
}
?>