Accueil > > > EXPLORATEUR FTP SUR 2 NIVEAUX
EXPLORATEUR FTP SUR 2 NIVEAUX
Information sur la source
Description
Une petit source qui peut aider certains à comprendre l'utilisation des dossiers.
Moi-même je viens de commencer ce soir et voilà mon petit entraînement. =P
Cette source permet de lister les fichiers et dossiers sur plusieurs niveaux (au moins 2) et de pouvoir fournir un aperçu des fichiers (visualisation de l'image et/ou lien vers le fichier).
Aperçu ici: http://www.g-web.fr.nf/upload/membre/
Source
- <?php
- /*
- G FTP
- Par viki53 (http://viki53.g-web.fr.nf/)
- Source libre d'utilisation
-
- Un petit lien serait tout de mêmele bienvenu =D
-
- Les variables $config['site_url'] et $config['site_racine'] sont à déclarer et correspondent respectivement à l'URL absolue du site (http://www.g-web.fr.nf/) et le chemin depuis la racine du serveur (/localhost/site/).
- */
-
- $nb_fichiers = 0; // On initialise les compteurs
- $nb_dossiers = 0;
-
- $file_types_img = array('jpg','gif','png','bmp','jpeg', 'tif'); // On déclare quelques types de fichiers (ici les images)
- $file_types_zip = array('zip','rar'); // Idem mais pour les archives
-
- if( $_GET['folder'] != NULL )
- {
- $folder = htmlentities($_GET['folder']);
- }
- if( $_GET['subdir'] != NULL )
- {
- $subdir = htmlentities($_GET['subdir']);
- }
-
- if( $_GET['file'] != NULL )
- {
- $file = htmlentities($_GET['file']);
-
- $filename = explode('.', $file);
- $filenameext = strtolower($filename[count($filename)-1]); // On récupère l'extension du fichier
-
- if($folder != NULL)
- $doss = $folder.'/';
- if($subdir != NULL)
- $doss = $doss.$subdir.'/';
-
- if( is_file($doss.$file) )
- {
- if( in_array($filenameext, $file_types_img) ) // Si le fichier est une image
- {
- echo '
- <p class="t_align_centre">
- <a href="'.$doss.$file.'" title="Voir l\'image en grand"><img src="'.$doss.$file.'" alt="'.$file.'" class="avatar" /></a>
- </p>
- ';
- }
- elseif( in_array($filenameext, $file_types_zip) ) // Si c'est une archive
- {
- echo '
- <p class="t_align_centre">
- Télécharger l\'archive : <a href="'.$doss.$file.'"><img src="/img/icones/cursor.png" alt="Clic" /></a>
- </p>
- ';
- }
- else // Sinon
- {
- echo '
- <p class="t_align_centre">
- Extension inconnue ('.strtoupper($filenameext).') : <a href="'.$doss.$file.'"><img src="/img/icones/cursor.png" alt="Clic" title="Télécharger le fichier" /></a>
- </p>
- ';
- }
-
- echo '
- <p class="t_align_centre">
- <a href="'.$_SERVER['HTTP_REFERER'].'">
- <img src="/img/precedent.png" alt="Retour" />
- </a>
-
- <a href="?">
- <img src="/img/sommaire.png" alt="Sommaire" />
- </a>
-
- <a href="'.$_SERVER['HTTP_REFERER'].'">
- <img src="/img/suivant.png" alt="Suite" />
- </a>
- </p>
- '; // Quelques petits liens. :p
- }
- else // Si le fichier n'existe pas
- {
- echo '<p class="message_erreur">Ce fichier n\'existe pas.</p>
-
- <p class="message_info">Vous aviez demandé <a href="?folder='.$folder.'" class="color_bleugris">'.$config['site_url'].'upload/membre/'.$doss.$file.'</a></p>';
- }
- }
-
-
- else // Si $_GET['file'] n'est pas donné
- { // Si on veut parcourir le serveur
- echo '<p>Dossier recherché : <span class="color_bleugris">'.$config['site_url'].'upload/membre/';
- if($folder != NULL)
- echo $folder.'/';
- if($subdir != NULL)
- echo $subdir.'/';
-
- echo'</span>.</p>';
-
- if($folder != NULL)
- $doss = $folder.'/';
- if($subdir != NULL)
- $doss = $doss.$subdir.'/';
-
- if( is_dir($config['site_racine'].'upload/membre/'.$doss) ) // Si le dossier existe
- {
- $dossier = opendir($config['site_racine'].'upload/membre/'.$doss);
-
- echo '
- <ul>
- ';
-
- while( ($fichier = readdir($dossier)) != FALSE )
- {
- if( is_file($doss.$fichier) AND !is_dir($doss.$fichier) AND $fichier != 'index.php' )
- {
- $nb_fichiers ++; //On incrémente le compteur de un
-
- $fichier_name = explode('.', $fichier);
- $fichier_ext = strtolower($fichier_name[count($fichier_name)-1]);
-
- echo '
- <li>';
- if( in_array($fichier_ext, $file_types_img) ) // Si c'est une image
- {
- echo '<img src="/img/icones/image.gif" alt="" />';
- }
- elseif( in_array($fichier_ext, $file_types_zip) ) // Si c'est une archive
- {
- echo '<img src="/img/icones/compress.png" alt="" />';
- }
- else // Sinon
- {
- echo '<img src="/img/icones/cursor.png" alt="" />';
- }
-
- // Le lien, qui varie selon les données existantes
- if( $subdir != NULL )
- {
- echo'
- <a href="?folder='.$folder.'&subdir='.$subdir.'&file='.$fichier.'">
- /'.$fichier.'
- </a>
- ';
- }
- elseif( $folder != NULL )
- {
- echo'
- <a href="?folder='.$folder.'&file='.$fichier.'">
- /'.$fichier.'
- </a>
- ';
- }
- else
- {
- echo'
- <a href="?file='.$fichier.'">
- /'.$fichier.'
- </a>
- ';
- }
- echo '
- </li>';
- }
- elseif( is_dir($doss.$fichier) AND !is_file($doss.$fichier) AND $fichier == '..' )
- { // Si c'est un dossier supérieur
- if($folder != NULL AND $subdir != NULL )
- {
- echo '
- <li>
- <a href="?folder='.$folder.'">
- <img src="/img/precedent.png" alt="<=" />
- </a>
- </li>
- ';
- }
- elseif($folder != NULL AND $subdir == NULL )
- {
- echo '
- <li>
- <a href="?">
- <img src="/img/precedent.png" alt="<=" />
- </a>
- </li>
- ';
- }
- }
- elseif( is_dir($doss.$fichier) AND !is_file($doss.$fichier) AND $fichier != '.' )
- {
- // Si c'est un sous-dossier
- $nb_dossiers ++; // On incrémente le beau compteur
-
-
- // Un petit lien
- if( $folder != NULL )
- {
- echo '
- <li>
- <a href="?folder='.$folder.'&subdir='.$fichier.'">
- <img src="/img/icones/folder.gif" alt="=>" /> /'.$fichier.'/
- </a>
- </li>
- ';
- }
- else
- {
- echo '
- <li>
- <a href="?folder='.$fichier.'">
- <img src="/img/icones/folder.gif" alt="=>" /> /'.$fichier.'/
- </a>
- </li>
- ';
- }
- }
- }
-
- echo '
- </ul>
- ';
-
- // On affiche les compteurs
- echo '
- <p class="message_info">Il y a
- <strong>'.$nb_fichiers.'</strong> fichier(s) et
- <strong>'.$nb_dossiers.'</strong> sous-dossier(s)
- dans ce dossier.</p>
- ';
-
- closedir($dossier); // On ferme le dossier
- }
- else // Si le dossier demandé n'existe pas
- {
- echo '<p class="message_erreur">Le dossier n\'a pas pu être ouvert.</p>';
- }
- }
- ?>
<?php
/*
G FTP
Par viki53 (http://viki53.g-web.fr.nf/)
Source libre d'utilisation
Un petit lien serait tout de mêmele bienvenu =D
Les variables $config['site_url'] et $config['site_racine'] sont à déclarer et correspondent respectivement à l'URL absolue du site (http://www.g-web.fr.nf/) et le chemin depuis la racine du serveur (/localhost/site/).
*/
$nb_fichiers = 0; // On initialise les compteurs
$nb_dossiers = 0;
$file_types_img = array('jpg','gif','png','bmp','jpeg', 'tif'); // On déclare quelques types de fichiers (ici les images)
$file_types_zip = array('zip','rar'); // Idem mais pour les archives
if( $_GET['folder'] != NULL )
{
$folder = htmlentities($_GET['folder']);
}
if( $_GET['subdir'] != NULL )
{
$subdir = htmlentities($_GET['subdir']);
}
if( $_GET['file'] != NULL )
{
$file = htmlentities($_GET['file']);
$filename = explode('.', $file);
$filenameext = strtolower($filename[count($filename)-1]); // On récupère l'extension du fichier
if($folder != NULL)
$doss = $folder.'/';
if($subdir != NULL)
$doss = $doss.$subdir.'/';
if( is_file($doss.$file) )
{
if( in_array($filenameext, $file_types_img) ) // Si le fichier est une image
{
echo '
<p class="t_align_centre">
<a href="'.$doss.$file.'" title="Voir l\'image en grand"><img src="'.$doss.$file.'" alt="'.$file.'" class="avatar" /></a>
</p>
';
}
elseif( in_array($filenameext, $file_types_zip) ) // Si c'est une archive
{
echo '
<p class="t_align_centre">
Télécharger l\'archive : <a href="'.$doss.$file.'"><img src="/img/icones/cursor.png" alt="Clic" /></a>
</p>
';
}
else // Sinon
{
echo '
<p class="t_align_centre">
Extension inconnue ('.strtoupper($filenameext).') : <a href="'.$doss.$file.'"><img src="/img/icones/cursor.png" alt="Clic" title="Télécharger le fichier" /></a>
</p>
';
}
echo '
<p class="t_align_centre">
<a href="'.$_SERVER['HTTP_REFERER'].'">
<img src="/img/precedent.png" alt="Retour" />
</a>
<a href="?">
<img src="/img/sommaire.png" alt="Sommaire" />
</a>
<a href="'.$_SERVER['HTTP_REFERER'].'">
<img src="/img/suivant.png" alt="Suite" />
</a>
</p>
'; // Quelques petits liens. :p
}
else // Si le fichier n'existe pas
{
echo '<p class="message_erreur">Ce fichier n\'existe pas.</p>
<p class="message_info">Vous aviez demandé <a href="?folder='.$folder.'" class="color_bleugris">'.$config['site_url'].'upload/membre/'.$doss.$file.'</a></p>';
}
}
else // Si $_GET['file'] n'est pas donné
{ // Si on veut parcourir le serveur
echo '<p>Dossier recherché : <span class="color_bleugris">'.$config['site_url'].'upload/membre/';
if($folder != NULL)
echo $folder.'/';
if($subdir != NULL)
echo $subdir.'/';
echo'</span>.</p>';
if($folder != NULL)
$doss = $folder.'/';
if($subdir != NULL)
$doss = $doss.$subdir.'/';
if( is_dir($config['site_racine'].'upload/membre/'.$doss) ) // Si le dossier existe
{
$dossier = opendir($config['site_racine'].'upload/membre/'.$doss);
echo '
<ul>
';
while( ($fichier = readdir($dossier)) != FALSE )
{
if( is_file($doss.$fichier) AND !is_dir($doss.$fichier) AND $fichier != 'index.php' )
{
$nb_fichiers ++; //On incrémente le compteur de un
$fichier_name = explode('.', $fichier);
$fichier_ext = strtolower($fichier_name[count($fichier_name)-1]);
echo '
<li>';
if( in_array($fichier_ext, $file_types_img) ) // Si c'est une image
{
echo '<img src="/img/icones/image.gif" alt="" />';
}
elseif( in_array($fichier_ext, $file_types_zip) ) // Si c'est une archive
{
echo '<img src="/img/icones/compress.png" alt="" />';
}
else // Sinon
{
echo '<img src="/img/icones/cursor.png" alt="" />';
}
// Le lien, qui varie selon les données existantes
if( $subdir != NULL )
{
echo'
<a href="?folder='.$folder.'&subdir='.$subdir.'&file='.$fichier.'">
/'.$fichier.'
</a>
';
}
elseif( $folder != NULL )
{
echo'
<a href="?folder='.$folder.'&file='.$fichier.'">
/'.$fichier.'
</a>
';
}
else
{
echo'
<a href="?file='.$fichier.'">
/'.$fichier.'
</a>
';
}
echo '
</li>';
}
elseif( is_dir($doss.$fichier) AND !is_file($doss.$fichier) AND $fichier == '..' )
{ // Si c'est un dossier supérieur
if($folder != NULL AND $subdir != NULL )
{
echo '
<li>
<a href="?folder='.$folder.'">
<img src="/img/precedent.png" alt="<=" />
</a>
</li>
';
}
elseif($folder != NULL AND $subdir == NULL )
{
echo '
<li>
<a href="?">
<img src="/img/precedent.png" alt="<=" />
</a>
</li>
';
}
}
elseif( is_dir($doss.$fichier) AND !is_file($doss.$fichier) AND $fichier != '.' )
{
// Si c'est un sous-dossier
$nb_dossiers ++; // On incrémente le beau compteur
// Un petit lien
if( $folder != NULL )
{
echo '
<li>
<a href="?folder='.$folder.'&subdir='.$fichier.'">
<img src="/img/icones/folder.gif" alt="=>" /> /'.$fichier.'/
</a>
</li>
';
}
else
{
echo '
<li>
<a href="?folder='.$fichier.'">
<img src="/img/icones/folder.gif" alt="=>" /> /'.$fichier.'/
</a>
</li>
';
}
}
}
echo '
</ul>
';
// On affiche les compteurs
echo '
<p class="message_info">Il y a
<strong>'.$nb_fichiers.'</strong> fichier(s) et
<strong>'.$nb_dossiers.'</strong> sous-dossier(s)
dans ce dossier.</p>
';
closedir($dossier); // On ferme le dossier
}
else // Si le dossier demandé n'existe pas
{
echo '<p class="message_erreur">Le dossier n\'a pas pu être ouvert.</p>';
}
}
?>
Conclusion
Je ne l'ai pas vraiment développée mais j'ai ajouté quelques commentaires pour vous aider.
Je précise que je n'ai pas effectué les changements pour qu'elle soit adaptable à tous les sites.
Bientôt je la transformerai en fonction. ;)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Sécurité-fichiers-dossiers [ par stageSAP ]
Bonjour,Pour mon site, je protège l'accès aux pages grâce aux variables de sessions et cela marche très bien. Je travaille en local pour l'instant. Su
Téléchargement de fichiers [ par asterixobelix ]
J'expose mon problème:J'ai créé un explorateur de fichier en php pour pouvoir aller les rechercher dans une bibliotheque en intranet, puis les rapatri
connection FTP par PHP [ par JulienC ]
Bonjour à toutes et à tous,Mon but est de pouvoir uploader sur mon site des fichiers ayant une extension particulière (on les nommera .ext). Ces fichi
Tri de fichiers par date [ par Clem ]
Comment trier dans l'orde du plus nouveau au plus vieux, des dossiers ?J'ai trouvé pour afficher les dossiers :<?$rep=opendir('.');while ($file = r
ftp_put [ par Tasuki ]
Est-ce-qu'on est obligé de passer par un formulaire avec un champ de type 'file' pour transférer des fichiers avec l'instruction ftp_put?J'essaye de t
distinction dossier/fichiers (ftp) [ par glipper ]
Bonjour,Je voudrais lister les fichiers présents sur mon serveur ftpavec un script php.J'ai donc fait ceci :$ftp = ftp_connect($serveur);ftp_login($ft
Problème avec serveur FTP [ par DrMnu ]
Bonjour,J'ai un petit problème que je m'en vais vous expliquer: j'ai un serveur FTP sur lequel je stocke des fichiers uploadés par les utilisateurs de
Droits des fichiers [ par flexx ]
Salut Je me pose quelques questions au sujet des droits des fichiers et des répertoires sur un FTP. Par exemple, lorsque j'upload un fichier s
effacer tous les fichiers et dossiers a la racine d un site [ par Teclis01 ]
Je crois que tout est dans le titre.Je suis decu de free je ne peux plus acceder a mon ftp je peux seulement acceder a mon site en passant par un navi
lister fichiers et sous-dossiers [ par Totofweb ]
Bonjourdans un script, j'ai besoin de lister les fichiers d'un dossier et les fichiers des sous-dossiers (niveau 1 seulement, mais si vous avez une so
|
Derniers Blogs
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|