"; //echo getcwd(); //echo "
"; //$s = getcwd(); //$decompose = explode('/',$s); //$element = end($decompose); //echo $element; $updatecheck = "yes"; ### $enable_css = "no"; $enable_logout = "no"; ### autorisation $allow_move = "yes"; $allow_download = "yes"; $allow_copy = "yes"; $allow_touch = "no"; $allow_rename = "yes"; $allow_edit = "yes"; $allow_chmod = "yes"; $allow_delete = "yes"; $allow_upload = "yes"; $allow_create_dir = "yes"; $allow_create_file = "yes"; $allow_display_env = "no"; $not_allowed = "Cette fonction n'est pas disponible. Consulter l'administrateur."; $html_copyright = "
Patrice Delpy 2013"; ############### Size for textarea if($enable_css == "yes") { $textrows = "27"; $textcols = "160"; } else { $textrows = "20"; $textcols = "100"; } ############### If $wdir (working directory) isn't specified, set it as a slash (/) if(!$wdir) $wdir="/"; //echo $wdir; ############################################################################### function image_size() { $size = GetImageSize("$image"); } ############################################################################### function html_header(){ global $basedir; global $wdir; global $lastaction; global $version; global $HTTP_REFERER; global $action; global $webname; global $display; global $file; global $browse; global $raw; global $image; global $fileurl; global $enable_css; global $allow_display_env; global $enable_logout; echo "
"; echo "
"; ############ We want a BACK link when viewing pictures and raw text. if($action == "show") { echo " $lastaction"; echo "
"; echo " Back"; //\"Fichier echo "
"; } ############ We dont want a BACK link else { echo " $lastaction"; } echo "
"; echo "
"; echo ""; echo "
"; echo ""; echo ""; echo ""; } ############################################################################### function display_size($file) { //preg_match("/([^A-Za-z0-9])/",$file,$result); //On cherche tt les caractères autre que [A-Za-z] ou [0-9] //if(empty($result)) if(is_file($file)) { $file_size = filesize($file); if($file_size >= 1073741824) { ### en giga $file_size = round($file_size / 1073741824 * 100) / 100 . " Go"; } elseif($file_size >= 1048576) { ### en mega $file_size = round($file_size / 1048576 * 100) / 100 . " Mo"; } elseif($file_size >= 1024) { ### en kilo $file_size = round($file_size / 1024 * 100) / 100 . " Ko"; } else{ ### en octet (byte) $file_size = $file_size . " Octets"; } return $file_size; } } ############################################################################### ############ List the files function function list_files() { global $basedir; global $wdir; global $single; global $key; global $allow_move; global $allow_chmod; global $allow_create_file; global $allow_create_dir; global $allow_upload; global $allow_touch; global $allow_delete; ################## Load directory into array $handle=opendir("."); while ($file = readdir($handle)) { if(is_file($file)) $filelist[] = $file; } closedir($handle); ############### List files if($filelist) { ############### Sort the filelist alphabetically asort($filelist); while (list ($key, $file) = each ($filelist)) { ############### Registered filetypes. You can add more filetypes here at wish.. ############### Check what fileformat it is and give it the correct icon and attributes $ext = strrchr ( $file , "." ); $ext = strtolower($ext); // modifier le 18 fev 2013 //$path = "/WORKAREA/WEBSITE/" .substr($basedir, 3) .substr($wdir,1) .$file; //$s = getcwd(); //$decompose = explode('/',$s); //$element = end($decompose); $element = "site_27_09_2013_template"; //echo "+++" .$wdir ."+++"; $rep = dirname($_SERVER["PHP_SELF"]); $chemin = $rep ."/" .$basedir .$wdir .$file; //echo $chemin; //echo "
"; //echo "
"; $path = "/WORKAREA/WEBSITE/" .$element ."/" .$basedir .$wdir .$file; //echo $path; //$path = "/WORKAREA/WEBSITE/" .$element ."/" .$basedir .substr($wdir,1) .$file; ############### Image if((!strcasecmp ($ext, ".gif")) || (!strcasecmp ($ext, ".jpg")) || (!strcasecmp ($ext, ".png")) || (!strcasecmp ($ext, ".bmp")) || (!strcasecmp ($ext, ".jpeg"))) { //echo $path ; //$icon = "\"Fichier"; $icon = ''; $browse = "1"; $raw = "0"; $image = "1"; } ############### Documents Office & autres elseif((!strcasecmp ($ext, ".doc")) || (!strcasecmp ($ext, ".docx")) ) { //echo $path; $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } elseif((!strcasecmp ($ext, ".xls")) || (!strcasecmp ($ext, ".xlsx")) ) { //echo $path ; $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } elseif((!strcasecmp ($ext, ".ppt")) || (!strcasecmp ($ext, ".pptx")) ) { //echo $path; $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } elseif(!strcasecmp ($ext, ".pdf")) { //echo $path; $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } ############### Fichier texte elseif(!strcasecmp ($ext, ".txt")) { $icon = "\"Fichier"; $browse = "1"; $raw = "1"; $image = "0"; } ############### Audiofile elseif((!strcasecmp ($ext, ".wav")) || (!strcasecmp ($ext, ".mp3")) || (!strcasecmp ($ext, ".midi")) || (!strcasecmp ($ext, ".mid"))) { $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } ############### Videofile elseif((!strcasecmp ($ext, ".mp4")) || (!strcasecmp ($ext, ".avi")) || (!strcasecmp ($ext, ".mpg")) || (!strcasecmp ($ext, ".wmv")) || (!strcasecmp ($ext, ".flv")) || (!strcasecmp ($ext, ".mov"))) { $icon = "\"Fichier"; $browse = "1"; $raw = "0"; $image = "0"; } ############### Fichier Zip elseif((!strcasecmp ($ext, ".zip")) || (!strcasecmp ($ext, ".tar")) || (!strcasecmp ($ext, ".rar")) || (!strcasecmp ($ext, ".gz")) || (!strcasecmp ($ext, ".tgz"))) { $icon = "\"Fichier"; $browse = "0"; $raw = "0"; $image = "0"; } ############### Script elseif((!strcasecmp ($ext, ".phps")) || (!strcasecmp ($ext, ".php")) || (!strcasecmp ($ext, ".php2")) || (!strcasecmp ($ext, ".php3")) || (!strcasecmp ($ext, ".php4")) || (!strcasecmp ($ext, ".phtml")) || (!strcasecmp ($ext, ".asp")) || (!strcasecmp ($ext, ".asa")) || (!strcasecmp ($ext, ".cgi")) || (!strcasecmp ($ext, ".shtml")) || (!strcasecmp ($ext, ".pl"))) { $icon = "\"Script"; $browse = "1"; $raw = "1"; $image = "0"; } ############### Apache Webserver security settings elseif(!strcasecmp ($ext, ".htaccess")) { $icon = "" ; $browse = "0"; $raw = "1"; $image = "0"; } ############### Web page elseif ((!strcasecmp ($ext, ".html")) || (!strcasecmp ($ext, ".htm"))) { $icon = "\"Page"; $browse = "1"; $raw = "1"; $image = "0"; } ############### Inconnu else { $icon = "\"Extension"; $browse = "1"; $raw = "1"; $image = "0"; } ############### List the file(s) $filename=$basedir.$wdir.$file; $fileurl=rawurlencode($wdir.$file); if(is_file($file)) { $nom = basename ($file); //echo ">>>>> " .$nom; $lastchanged = filectime($nom); $changeddate = date("d-m-Y H:i:s", $lastchanged); } echo ""; echo ""; ############### Make the fileicon clickable for quickviewing if($raw == "1") { echo ""; } if($image == "1") { echo ""; } echo "$icon\n"; echo "" . htmlspecialchars($file) . "\n"; echo "" . display_size($file) . ""; echo "" . $changeddate . ""; ############### CHMOD file? if($allow_chmod == "yes") { echo ""; } echo ""; if(is_file($file)) {printf("%o", (fileperms($file)) & 0777); } echo ""; if($allow_chmod == "yes") { echo ""; } echo ""; ############### Move file? if($allow_move == "yes") { echo " "; } ############### Touch file? if($allow_touch == "yes") { echo " \"Touch "; } ############### Delete file? if($allow_delete == "yes") { echo " "; } ############### If the file can be browsed, give it the browse icon /*if($browse == "1") { echo " \"Affiche "; }*/ ############### If the file can be edited, give it the edit icon if($raw =="1") { echo " "; } } } } ### liste des objets (tableau contenant les repertoires ou les fichiers) function displaydir() { global $file; global $basedir; global $wdir; global $allow_create_file; global $allow_create_dir; global $allow_upload; global $allow_touch; global $allow_delete; global $allow_move; global $single; //html_header(); ### haut du listing if(isset($single)) { echo ""; } else { echo "
"; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; ################## Load directory into array if(!isset($single)) { //echo ">>>> " .$single; chdir($basedir . $wdir); //echo "++++++ " .$basedir . $wdir ." ++++ " .getcwd(); $handle=opendir("."); while ($file = readdir($handle)) { if(is_dir($file)) $dirlist[] = $file; } closedir($handle); ############### List directories first if($dirlist) { ############### Sort alphabetically asort($dirlist); ############### Walk through array while (list ($key, $file) = each ($dirlist)) { ################## Skip the tiresome "." if (!($file == ".")) { $filename=$basedir.$wdir.$file; $fileurl=rawurlencode($wdir.$file); //echo "+++++++ " .$basedir ." " .$wdir ." " .$file ."+++++++ "; $rep = getcwd(); //$tmp = substr($basedir,2) .$wdir .$file; //$tmp = "../WORKAREA/WEBSITE" .$tmp; //echo " ---- " .$tmp ."----- "; //$tmp = '/homez.65/analogde/www/WORKAREA/WEBSITE/Users/lucien/Docs'; $lastchanged = filectime($rep); $changeddate = date("d-m-Y H:i:s", $lastchanged); echo ""; ############### Print PARENT arrow if($file == "..") { $downdir = dirname("$wdir"); echo "\n"; echo "\n"; echo ""; echo "\n"; echo "\n"; echo ""; echo "\n"; echo "
TypeNomTailleModificationsDroitsAction
\"Répertoire" . display_size($filename) . "" . $changeddate . ""; printf("%o", (fileperms($file)) & 0777); if(is_file($file)) {printf("%o", (fileperms($file)) & 0777); } echo ""; echo "\"Répertoire "; } ############### List the directory else { //echo "****** " .$tmp ."***** "; $lastchanged = filectime($rep); echo "\"Changement" . htmlspecialchars($file) . "" . display_size($filename) . "" . $changeddate . ""; echo ""; printf("%o", (fileperms($file)) & 0777); if(is_file($file)) { echo ">> " .$file ; printf("%o", (fileperms($file)) & 0777); } echo ""; echo ""; ############### Move directory? if($allow_move == "yes") { echo " \"Renomme "; } ############### Touch directory? /*if($allow_touch == "yes") { echo " \"Touch "; }*/ ############### Delete directory? if($allow_delete == "yes") { echo "\"Supprime "; } } } } } list_files(); echo "
"; ############### Display forms for different actions echo ""; echo ""; ############### Upload file if($allow_upload == "yes") { echo ""; echo ""; } ############### création d'un répertoire if($allow_create_dir == "yes") { echo ""; echo ""; echo ""; } ############### création d'un fichier if($allow_create_file == "yes") { echo ""; echo ""; echo ""; } echo "

Upload file"; echo "
"; echo ""; echo ""; echo "
Créer un répertoire"; echo ""; echo ""; echo ""; echo "
Créer un fichier"; echo ""; echo ""; //echo "(html template) "; echo ""; echo ""; echo "
"; } else { list_files(); } } ######################################################################################################### ############### The user pressed CANCEL, set the $action to nothing if($cancel) $action=""; ############### User has entered .. as directory. Potential security breach. Deny access. $regexp="\\.\\."; if (ereg( $regexp, $file, $regs )| ereg( $regexp, $wdir,$regs )) { $lastaction = "ERROR: Directories may not contain the character \"..\""; html_header(); exit; } ############### Upload file if($upload) { /* */ echo $userfile; echo '
'; echo '
'; echo $basedir.$wdir.$userfile_name; copy($userfile,$basedir.$wdir.$userfile_name); $lastaction = "Upload du fichier $userfile_name to $wdir"; html_header(); displaydir(); exit; } ######################################################################################################### ############### Begin actions code switch ($action) { ######################################################################################################### ############### aucune action - affichage initial case "": $lastaction = "Résultat de l'action ->>> Contenu du repertoire"; html_header(); displaydir(); break; ######################################################################################################### ############### aide en ligne case "help": $lastaction = "Aide contextuelle"; html_header(); echo("Voici la page d'aide, le reste viendra plus tard"); break; ######################################################################################################### ############### passage en mode root /*case "root": $wdir="/"; $lastaction = "Répertoire réserver exclcusivement à l'administrateur"; html_header(); displaydir(); break;*/ ######################################################################################################### ############### affiche le tableau - PHP env case "env": if($allow_display_env == "no") { $lastaction = $not_allowed; html_header(); displaydir(); } else { $lastaction = "Affiche le fichier PHP.ini du serveur "; html_header(); phpinfo(); } break; ######################################################################################################### ############### change de repertoire case "chdr": //$basedir //$wdir=$file."/"; //echo "dfggg " .$basedir ."/Docs"; /* echo '
'; echo '********************************'; echo '
'; echo "Variable " .$file; echo '
'; echo '********************************'; echo '
'; if($file == ".") { $file = ""; } echo '
'; echo '********************************'; echo '
'; $changement = $_SESSION['repertoire'] .$file; echo "Changement " .$changement; echo '
'; echo '********************************'; echo '
'; $wdir = chdir($changement); $wdir = getcwd(); /*echo '
'; echo '********************************'; echo '
'; echo "Memoire " .$stocke_rep; $wdir = $stocke_rep .'/Docs';*/ /* echo '
'; echo '********************************'; echo '
'; echo $wdir; echo '
'; echo '********************************'; echo '
'; echo '
'; echo '
'; echo '
'; echo "Downdir " .dirname("$wdir"); $basedir = $_SESSION['repertoire']; $lastaction = "Résultat de l'action ->>> Change de répertoire -> $wdir"; //html_header(); displaydir(); break;*/ $wdir=$file."/"; preg_replace('#/+#','/',$wdir); $url = rtrim($wdir,"/"); //substr_count($cour['path'], '/',2) //$string = rtrim($string, '/'); //$lastaction = "Changement de répertoire : $wdir"; $lastaction = "Changement de répertoire : $wdir"; html_header(); displaydir(); echo $html_copyright; break; ######################################################################################################### ############### Touch object (create a new timestamp) /* case "touch": if($allow_touch == "no") { $lastaction = $not_allowed; html_header(); displaydir(); } else { touch($basedir.$touchfile); $lastaction = "blabla Touched $touchfile"; html_header(); displaydir(); } break; */ ######################################################################################################### ############### supprime un fichier ou un repertoire case "del": ############### a se stade, l'utilisateur a confirmer la suppression if ($confirm) { ############### l'objet est un repertoire if(is_dir($basedir.$file)) { rmdir($basedir.$file); } ############### Object is a file else { unlink($basedir.$file); } $lastaction = ">>> Suppression du fichier: $file"; html_header(); displaydir(); } ############### confirmation else { if($raw == "1") { $lastaction = "Etes vous sur de vouloir supprimer le fichier :
$file?"; } elseif($image == "1") { $lastaction = "Etes vous sur de vouloir supprimer le fichier :
$file?"; } else { $lastaction = "Etes vous sur de vouloir supprimer le fichier :<
$file?"; } html_header(); echo "
Ok!
"; echo "

Non!

"; } break; ######################################################################################################### ############### droit des fichiers case "chmod": ############### The user has confirmed if ($confirm) { $level = "0"; $level .= $owner; $level .= $group; $level .= $public; $showlevel = $level; $level=octdec($level); chmod($basedir.$file,$level); $lastaction = "Fixer des droits liés au fichier: $file -> $showlevel"; html_header(); displaydir(); } ############### Prompt the user for confirmation else { $lastaction = "Change le niveau des permissions du fichier : $file"; html_header(); echo "

Droits actuel::: "; printf("%o", (fileperms($basedir.$file)) & 0777); echo "

\n"; function selections($type) // type: 0 Owner, 1 Group, 2 Public { echo "
"; } break; ######################################################################################################### ############### deplacer un fichier dans l'arborescence case "move": ############### if($confirm && $newfile) { ############### The destination object exists if(file_exists($basedir.$newfile)) { $lastaction = "Résultat de l'action ->>> Le fichier existe déjà, choisir une autre destination ou alors renomer le fichier."; } else { if($do == copy) { copy($basedir.$file,$basedir.$newfile); $lastaction = "Résultat de l'action ->>> Copie\n$file -> $newfile"; } else { rename($basedir.$file,$basedir.$newfile); $lastaction = "Résultat de l'action ->>> Déplace/renomme\n$file -> $newfile"; } } html_header(); displaydir(); } ############### Prompt the user for destination name and action else { if($object == "file") { if($raw == "1") { $lastaction = "Résultat de l'action ->>> Déplacer/renomer ou copier $file"; } elseif($image == "1") { $lastaction = "Résultat de l'action ->>> Déplacer/renomer ou copier : $file"; } else { $lastaction = "Résultat de l'action ->>> Déplacer/renomer ou copier le fichier : $file"; } html_header(); echo "
\n"; echo " "; echo "Le fichier : ($file)"; echo "

Vers

"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "

"; echo "\n"; echo "\n"; echo "

"; } else { $lastaction = ">>> Nouveau nom pour le fichier : $file"; html_header(); echo "
\n"; echo "

Renomme

"; echo "$file"; echo "

En

"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "

"; echo "\n"; echo "\n"; echo "\n"; echo "

"; } } break; ######################################################################################################### ############### Edit file case "edit": ############### Function for saving the file. function savefile() { global $basedir; global $file; global $code; html_header(); $fp=fopen($basedir.$file,"w"); fputs($fp,stripslashes($code)); fclose($fp); } function buttons() { global $file; global $wdir; echo "
"; echo ""; echo ""; echo ""; echo " "; echo " "; echo " "; echo " "; echo "

\n"; } ############### The user is done editing. Return to main screen if($saveexit) { $lastaction = "Résultat de l'action ->>> Edition du fichier : $file"; savefile(); displaydir(); } ############### Save the file, but continue editing. if($save) { $lastaction = "Résultat de l'action ->>> Sauvegarde du fichier : $file, ( en cours d'édition)."; savefile(); echo "
\n"; $fp=fopen($basedir.$file,"r"); $contents=fread($fp,filesize($basedir.$file)); echo "
\n"; echo "
"; buttons(); echo ""; } ############### Display file in textarea if($display) { if($raw == "1") { $lastaction = "Edition du fichier : $file"; } elseif($image == "1") { $lastaction = "Edition du fichier : $file"; } else { $lastaction = "Edition du fichier : $file"; } html_header(); echo "
\n"; $fp=fopen($basedir.$file,"r"); $contents=fread($fp,filesize($basedir.$file)); echo "
\n"; buttons(); echo "
"; } break; ######################################################################################################### ############### Display file case "show": ############### Display file in textformat $filelocation = $wdir.$file; //$str = stripslashes($file); //echo $str; $str = basename($file); $lastaction = ">>> Visualisation du fichier : $str"; html_header(); ############### It is a picture, display it. The filename needs to be either relative to the current document, or an absolute filesystem path. if($image == "1") { //echo $DOCUMENT_ROOT ." + " .$file; //$size = GetImageSize($DOCUMENT_ROOT.$file); $source = basename($file); $source = getcwd(); //$source = $basedir ."/" .$source; //echo "Source " . $wdir; //echo "->" .$basedir .substr($wdir,1) .$str ." "; $chemin = $basedir .$file; //modifier le 18 fev 2013 //$chemin = $basedir .$wdir .$str; //substr($wdir,1) //$chemin = substr($chemin,2); //$chemin = "/WORKAREA/WEBSITE" .$chemin; //echo "-> " .$chemin ." "; //$source = "/WORKAREA/WEBSITE/Users/lucien/rep1/Desert.jpg"; // .$file; $source = $chemin; //$source = $file; //echo $source; $size = GetImageSize($source); //echo "***** Size: " .$size ." *******"; echo "
"; } ############### It is text, display it. else { $single = "yes"; # displaydir(); echo"

"; show_source($basedir.$file); } break; ######################################################################################################### ############### Créer répertoire case "mkdir": ############### Permission ? if($allow_create_dir == "no") { $lastaction = $not_allowed; html_header(); } else { ############### Existe ? if(file_exists($basedir.$wdir.$mkdirfile)) { $lastaction = "Résultat de l'action ->>> Le répertoire $wdir$mkdirfile existe déjà."; html_header(); } ############### Création else { $new_rep =$basedir .substr($wdir,1) .$mkdirfile; echo "
"; //echo $basedir ." ++ " .substr($wdir,1) ." ++ ".$mkdirfile; $lastaction = "Résultat de l'action ->>> Création du répertoire $wdir$mkdirfile"; html_header(); //mkdir("../Users/lucien/aqw"); mkdir($new_rep); //mkdir($basedir.$wdir.$mkdirfile,0750); } displaydir(); /*echo " ++ " .$new_rep ." ++ ";*/ } break; ######################################################################################################### ############### Créer fichier case "createfile": $filelocation = $wdir.$file; ############### The user is done editing. Return to main screen if($done == "1") { //echo "+++++ " .$filelocation; //echo "+++++ " .strlen($file); /* if($file == 0) { $lastaction = "Résultat de l'action ->>> Le champ fichier est vide. !!!"; html_header(); displaydir(); } else {*/ $lastaction = "Résultat de l'action ->>> Le fichier : $file vient d'être créer."; html_header(); $fp=fopen($basedir.$filelocation,"w"); //$fp=fopen($file,"w"); fputs($fp,stripslashes($code)); fclose($fp); displaydir(); /*}*/ } ############### Display a textarea that will be the file else { ############### Existe ? if(file_exists($basedir.$filelocation)) { $lastaction = "Résultat de l'action ->>> Le fichier $file exite déjà. !!!"; html_header(); displaydir(); } ############### Give the user a textarea to write the contents of file else { $lastaction = "Résultat de l'action ->>> Création du fichier : $file"; html_header(); echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "
"; $ext = strrchr ( $file , "." ); if(!strcasecmp ($ext, ".txt")) { echo "(convert line returns to BR) "; } echo "

\n
"; } } break; } ?>