|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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 du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|