1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
| <?php
print("<HTML><BODY>");
function taille_nom($nom) // permet de tronquer le nom du fichier si il est trop long.
{
$temp=$nom;
if (strlen($nom)>30)
{
$nom=substr($temp,0,27);
$nom=$nom."...";
}
return $nom;
}
function taille($taillett) // retourne la taille arrondie et avec l'unité à la fin.
{
$taillett=$taillett/1024;
if ($taillett > 1024)
{
$taillett=$taillett/1024;
$taillett=round($taillett*100)/100;
$taillett=$taillett." Mo";
}else
{
$taillett=round($taillett*100)/100;
$taillett=$taillett." Ko";
}
return $taillett;
}
if(isset($_POST["NOM_DOSSIER"])){ // qd on reviens en arriere,
$temp=strlen($_POST["NOM_DOSSIER"]); // on verifie si les 2 derniers caractères
$temp2=substr($_POST["NOM_DOSSIER"],-2); // ne sont pas ..
if ($temp2=="..") // par la suite on recherche le dernier '/'
{ // pour trouver quel est le dossier parent.
$temp2=substr($_POST["NOM_DOSSIER"],0,($temp-3));
$ou=strrpos($temp2,"/");
$dossier=substr($temp2,0,($ou+1)); // et on ecrit dans $dossier.
}else
{
$dossier=$_POST["NOM_DOSSIER"]."/";}
}else
{
$dossier="../"; // mon prog n'est pas stocké sur la racine
} // d'où un retour en arrière. A adapter
if(isset($_POST["SUPPR"])){
if($_POST["SUPPR"]!=""){ // nom du nouveau répertoire courant
unlink($_POST["SUPPR"]); // ou suppression d'un fichier.
$temp=strlen($dossier);
$dossier=substr($dossier,0,($temp-1));
}
}
if(isset($_FILES['userfile'])){
if($_FILES['userfile']['size']>0){ // reception du nouveau fichier.
$nom_fichier=strtr($_FILES['userfile']['name'], " ", "_");
$nom_fichier=strtr($_FILES['userfile']['name'], " ", "_");
$nom_fichier=strtr($_FILES['userfile']['name'], "$", "-");
// pour ne pas avoir de nom bizare.
$savefile= $_POST["REP"].$nom_fichier;
$temp = $_FILES['userfile']['tmp_name'];
move_uploaded_file($temp, $savefile);
$dossier=$_POST["REP"];
}
}
// pour afficher en tête de votre page un descriptif
print("<div id='tete_table' style='position:absolute;top:0px;left:40px;'>
<TABLE rules='none' frame='void'><TR>
<TD align='left' width='200'><small>Fichier</small></TD>
<TD align='right' width='35'><small>Taille</small></TD>
<TD align='right' width='100'><small>Date</small></TD>
</TR></TABLE></div>");
print("<div id='1' style='position:absolute;top:20px;left:20px;'>
<img id='image_dir1' src='image_dir.JPG' width='17' height='15' border='0'><b>
<font color=blue><small> $dossier </small></font></b><BR></div>");
if($dossier!="../") // pour empecher de remonter plus haut que la racine.
{
print("<div id='2' style='position:absolute;top:40px;left:40px;'>
<img ondblclick=javascript:fsubmit('$dossier..','');
id='image_dir2' src='image_dir.JPG' width='17' height='15' border='0'>
<font color=blue><small> .. </small></font></div>");
$position=40;
}else
{
$position=20; // pour rearanger correctement les fichiers.
}
$rep=opendir($dossier);
$taille_totale=0;
$i=0;$j=0;
while(false !== ($nom= readdir($rep)))
{
if (($nom!=".") and ($nom!=".."))
{
$chemin=$dossier.$nom;
if (is_dir($chemin)) // s'il s'agit d'un répertoire
{
$tab_dossier[$i]=$nom;
$i++;
}else // sinon
{
$tab_fichier[$j]=$nom;
$j++;
}
}
}
if(isset($tab_dossier)) sort($tab_dossier);
// trie les tableaux par ordre alphabétique si ils éxistent.
if(isset($tab_fichier)) sort($tab_fichier);
$temp_taille=sizeof($tab_dossier);
for ($i=0;$i<$temp_taille;$i++)
{
$nom=$tab_dossier[$i];
$chemin=$dossier.$nom; // ya plus qu'a afficher les dossiers
$position+=20; // on n'oublie pas d'incrémementer
print("<div id='dir_$position'
style='position:absolute;top:$position;left:40px;'>
<img ondblclick=javascript:fsubmit('$chemin','');
id='image_dir_$i' src='image_dir.JPG' width='17' height='15' border='0'>
<font color=blue><small> $nom </small></font></div>");
}
$position+=20;
print("<div id='table' style='position:absolute;top:$position;left:38px;'>
<TABLE rules='none' frame='void'></div>");
// on n'affiche pas les bord des cellules
$temp_taille=sizeof($tab_fichier);
for ($j=0;$j<$temp_taille;$j++)
{
$nom=$tab_fichier[$j];
$chemin=$dossier.$nom;
$nom_bis=taille_nom($nom); // on réduit la taille du nom
$taille_fichier=filesize($chemin); // on calcul la taille du fichier
$taille_totale+=$taille_fichier; // et la taille totale
$taille_fichier=taille($taille_fichier); // ya plus qu'a afficher les fichiers dans la table
$date_=date("d/m/Y H:i",filectime($chemin)); //la date
print("<TR><TD align='left' valign='bottom' width='200'>
<img id='image_file_$j' src='image_file.JPG' alt=$nom width='15' height='18' border='0'>
<A href=$chemin target='_blank'>
<small> $nom_bis </small></A></TD>
<TD align='right' valign='bottom'><small> $taille_fichier
</small></TD>
<TD align='right' valign='bottom' width='100' >
<small> $date_ </small></TD>
<TD width='20' align='right' valign='bottom'>
<img id='image_file_$j' src='image_suppr.JPG'
alt='supprimer ce fichier' width='13' height='13'
border='0' ondblclick=javascript:fsubmit('$dossier','$chemin'); >
</TR>");
}
closedir($rep); // on oublie pas de fermer le répertoire
$taille_totale=taille($taille_totale); // on affiche la taille totale
print("<TR><TD align='left' valign='bottom' width='200'><small>Taille totale: </small></TD>
<TD align='right' valign='bottom'>
<small> $taille_totale </small></TD></TR>");
print("</TABLE><BR>");
print("<CENTER><FORM METHOD='POST' ENCTYPE='multipart/form-data'>");
print("<INPUT TYPE=HIDDEN NAME='REP' VALUE=$dossier>");// formulaire upload nouveau fichier.
print("<INPUT TYPE=FILE NAME='userfile'><BR>
<INPUT TYPE=SUBMIT value='Enregistrer le fichier'>");
print("</FORM></CENTER>");
print("<script language=javascript>");
print("function fsubmit(value_p,value_s)");
print("{");
print("document.forms['formulaire'].NOM_DOSSIER.value=value_p;");
print("if (value_s!=''){");
print("document.forms['formulaire'].SUPPR.value=value_s;}");// pour envoyer les formulaires cachés.
print("document.forms['formulaire'].submit();");
print("}");
print("</script>");
print("<FORM METHOD='POST' NAME='formulaire' ENCTYPE='multipart/form-data'>");
print("<INPUT TYPE=HIDDEN NAME=NOM_DOSSIER VALUE=''>");
print("<INPUT TYPE=HIDDEN NAME=SUPPR VALUE=''>"); // formulaire caché pour transmettre
// les infos sur le nouveau répertoire courant ou fichier
print("</FORM>");
print("</BODY></HTML>");
?> |