File "operation_fichier.php"

Full Path: /home/analogde/www/Freebox/CHESS_ON/operation_fichier.php
File size: 8.07 KB
MIME-type: text/x-php
Charset: utf-8

<?php

	session_start();

	$operation = $_POST['operation'];
/******************************************************************************/

	if($operation == "renome")	
	{
		$nom_copie = $_POST['fichier'];
		$chemin = $_POST['chemin'];
	
		$nouveau_nom = $_POST['nouveau_nom'];
		$chemin = $_POST['chemin'];
		// split chemin avec /
		$pieces = explode("/", $chemin);
		$n = count($pieces);
		$pieces[$n-1] = $nouveau_nom;
		// reconstruire le chemin du nouveau fichier
		$nouveau_chemin = implode("/", $pieces);
		rename($chemin,$nouveau_chemin);
		//echo $chemin ." ---- " .$nouveau_chemin;

	}

/******************************************************************************/

	if($operation == "copie")	
	{
	
		if(isset($_POST['selection']))
		{
			// supprimer . et ..
			array_shift($_SESSION['repertoire']);
			array_shift($_SESSION['repertoire']);	
		
			// identification repertoire 
			$tmp = $_SESSION['repertoire'];
			
			for ($i=0; $i < count($_SESSION['repertoire']); $i++) 
			{
				$tab_repertoire[] = "d*".$tmp[$i];
			}
			
			// identification fichier 
			$tmp = $_SESSION['fichier'];
			
			for ($i=0; $i < count($_SESSION['fichier']); $i++) 
			{
				$tab_fichier[] = "f*".$tmp[$i];
			}
			
			$tab_global = array_merge($tab_repertoire, $tab_fichier);
			echo "<pre>";
			print_r($tab_global);

			// supprime le premier caractere de la chaine :
			$str = substr($_POST['liste_index'],1); 
			$pieces = explode(":", $str);
			
			for ($i=0; $i < count($pieces); $i++) 
			{
				$id = $pieces[$i];
				$coco[] = $tab_global[$id];
				
				if (strpos($tab_global[$id],'d*') !== false) 
				{
					echo "Repertoire";
				
				} 
				else
				{
					echo "Fichier";
				}
				
				
			}
			
			//$chemin = $_POST['chemin'];
			echo "<pre>";
			print_r($coco);
		}

		else
		{
			$nom_copie = $_POST['fichier'];
			$chemin = $_POST['chemin'];
	
			// split chemin avec /
			$pieces = explode("/", $chemin);
			$n = count($pieces);
			$pieces[$n-1] = $nom_copie;
			// reconstruire le chemin du nouveau fichier
			$nouveau_chemin = implode("/", $pieces);
			//$file = "Utilisateurs/25.jpg";
			//$newfile = "Utilisateurs/zzzzzzzzzzzz.jpg";
			copy($chemin,$nouveau_chemin);
			
			//echo "-----> " .$chemin ." " .$nouveau_chemin; 
		}
	}

/******************************************************************************/
	
	if($operation == "efface")	
	{
		if(isset($_POST['selection']))
		{
			// supprimer . et ..
			array_shift($_SESSION['repertoire']);
			array_shift($_SESSION['repertoire']);	
		
			if(count($_SESSION['repertoire'] != 0))
			{
				// identification repertoire 
				$tmp = $_SESSION['repertoire'];
				for ($i=0; $i < count($_SESSION['repertoire']); $i++) 
				{
					$tab_repertoire[] = "d*".$tmp[$i];
				}
			}
			else
			{
				// identification fichier 
				$tmp = $_SESSION['fichier'];
				for ($i=0; $i < count($_SESSION['fichier']); $i++) 
				{
					$tab_fichier[] = "f*".$tmp[$i];
				}
			}
			
			if(count($_SESSION['fichier']) != 0)
			{
				// identification fichier 
				$tmp = $_SESSION['fichier'];
				for ($i=0; $i < count($_SESSION['fichier']); $i++) 
				{
					$tab_fichier[] = "f*".$tmp[$i];
				}
			}
			
			if(count($_SESSION['repertoire']) != 0)
			{
				$tab_global = array_merge($tab_repertoire, $tab_fichier);
			}
			else
			{
				$tab_global = $tab_fichier;
			}
			
			// pour le debug
			//echo "<pre>";
			//print_r($tab_global);
			
			// supprime le premier caractere de la chaine :
			$str = substr($_POST['liste_index'],1); 
			$pieces = explode(":", $str);
			
			for ($i=0; $i < count($pieces); $i++) 
			{
				$id = $pieces[$i];
				if (strpos($tab_global[$id],'d*') !== false) 
				{
					$repertoire = substr($tab_global[$id], 2);
					$origine = $_POST['chemin'] ."/" .$repertoire;
					//efface_repertoire($origine);
					echo 1;
				} 
				else
				{	
					$fichier = substr($tab_global[$id], 2);
					$origine = $_POST['chemin'] ."/" .$fichier;
					//unlink($origine);
					echo 1;
				}
			}
		}
		
		else
		{
			$test = is_file($_POST["chemin"] );
			if($test == true)
			{
				$chemin = $_POST["chemin"];
				unlink($chemin);
				echo 1;
				//echo "Fichier";
			}
			else
			{
				efface_repertoire($_POST["chemin"]);
				echo 1;
				//echo "Repertoire";
			}
			
			echo "++++ " .$_POST["chemin"];
			
		}	
	}

/******************************************************************************/

	if($operation == "deplace")	
	{
		if(isset($_POST['selection']))
		{
			//echo "bizarre ...";
			//data: 'liste_index=' + liste_index + '&chemin=' + chemin + '&selection=' + selection + '&operation=' + operation,
			echo "<pre>";
			print_r($_POST['liste_index']);
			echo $_POST['chemin'];
			echo $_POST['selection_repertoire'];
			
			// supprimer . et ..
			array_shift($_SESSION['repertoire']);
			array_shift($_SESSION['repertoire']);	
		
			// identification repertoire 
			$tmp = $_SESSION['repertoire'];
			
			for ($i=0; $i < count($_SESSION['repertoire']); $i++) 
			{
				$tab_repertoire[] = "d*".$tmp[$i];
			}
			
			// identification fichier 
			$tmp = $_SESSION['fichier'];
			
			for ($i=0; $i < count($_SESSION['fichier']); $i++) 
			{
				$tab_fichier[] = "f*".$tmp[$i];
			}
			
			$tab_global = array_merge($tab_repertoire, $tab_fichier);
			echo "<pre>";
			print_r($tab_global);

			// supprime le premier caractere de la chaine :
			$str = substr($_POST['liste_index'],1); 
			$pieces = explode(":", $str);
			
			for ($i=0; $i < count($pieces); $i++) 
			{
				$id = $pieces[$i];
				$coco[] = $tab_global[$id];
				
				if (strpos($tab_global[$id],'d*') !== false) 
				{
					echo "Repertoire";
				} 
				else
				{	
					echo "Fichier";
					$fichier = substr($tab_global[$id], 2);
					$selection_repertoire = $_POST['selection_repertoire'];
					$origine = $_POST['chemin'] ."/" .$fichier;
					$destination = $selection_repertoire ."/" .$fichier;
					echo $origine ."+++" .$destination;
		
					$test = strcmp($origine, $destination);
					if($test == 0)
					{
						echo 2;
					}
					else
					{
						copy($origine, $destination);
						unlink($origine);
						echo 1;
					}
				}
				
				
			}
			
			//$chemin = $_POST['chemin'];
			echo "<pre>";
			print_r($coco);
		}
		 
		else
		{
			$test = is_file($_POST["chemin"] );
			if($test == true)
			{
				$fichier = $_POST['fichier'];
				$selection_repertoire = $_POST['selection_repertoire'];
				$chemin = $_POST['chemin'];
			
				$origine = $chemin;
				$destination = $selection_repertoire ."/" .$fichier;
				//echo $origine ."+++" .$destination;
		
				$test = strcmp($origine, $destination);
				if($test == 0)
				{
					echo 2;
				}
				else
				{
					copy($origine, $destination);
					unlink($origine);
					echo 1;
				}
			
			}
			else
			{
				//echo "coucou";
				echo $_POST['selection_repertoire']." ** ".$_POST['chemin'];
			
				$origine = $_POST['chemin'];
				$destination = $_POST['selection_repertoire'];
				
				// puis recursif 
			}
		
			/*
			$fichier = $_POST['fichier'];
			$selection_repertoire = $_POST['selection_repertoire'];
			$chemin = $_POST['chemin'];
			
			$origine = $chemin;
			$destination = $selection_repertoire ."/" .$fichier;
			//echo $origine ."+++" .$destination;
		
			$test = strcmp($origine, $destination);
			if($test == 0)
			{
				echo 2;
			}
			else
			{
				copy($origine, $destination);
				unlink($origine);
				echo 1;
			}
			*/
			
		}	
		
		
	}
	
	
function efface_repertoire($path)
{
 	$files = glob($path . '/*');
	foreach ($files as $file) {
		is_dir($file) ? efface_repertoire($file) : unlink($file);
	}
	rmdir($path);
 	//return;
}



function recursive_move($dirsource, $dirdest)
{
	// recursive function to copy
	// all subdirectories and contents:
	if(is_dir($dirsource))$dir_handle=opendir($dirsource);
 
	$dirname = substr($dirsource,strrpos($dirsource,"/")+1);

	mkdir($dirdest."/".$dirname, 0750);

	while($file=readdir($dir_handle))
	{
			if($file!="." && $file!="..")
			{
				if(!is_dir($dirsource."/".$file))
				{
					copy ($dirsource."/".$file, $dirdest."/".$dirname."/".$file);
					unlink($dirsource."/".$file);
				}
				else
				{
					$dirdest1 = $dirdest."/".$dirname;
					recursive_move($dirsource."/".$file, $dirdest1);
				}
			}
	}
 
	closedir($dir_handle);
	rmdir($dirsource);
}
	
?>