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 !

FTP LISTE DE FICHIERS


Information sur la source

Description

Ca fait longtemps que j'étais pas passé ici alors voilà juste un petit truc
Ce script se connecte sur un FTP , recupere la liste des fichiers et vous la retourne avec toutes les informations les concernant...
 

Source

  • <?
  • // Host de connexion
  • $ftp_server = "ftp.defaut.com";
  • // Port de connexion 21 defaut
  • $ftp_port = "21";
  • // Login utilisateur
  • $ftp_user = "user";
  • // Mot de passe utilisateur
  • $ftp_pass = "";
  • // Repertoire par defaut
  • $ftp_dir = "public_html/";
  • // Fermerture de la session en cours
  • if($action =="close") {
  • $connection = ftp_connect($ftp_server, $ftp_port) or die("Could not connect");
  • ftp_close($connection);
  • }
  • // Ouverture d'une session
  • if($action =="establish") {
  • $connection = ftp_connect($ftp_server, $ftp_port) or die("Could not connect");
  • }
  • // Verification, si la connexion est faite
  • // Envoie d'un message bateau pour dire que c'est fait :p
  • // Recuperer la lite des fichiers sur le serveur par la connexion en cours
  • // Je compte combien j'ai de fichiers dans cette liste à la con ^^ (mais non elle est gentille)
  • if (@ftp_login($connection, $ftp_user, $ftp_pass)) {
  • echo "Connection established with $ftp_server for $ftp_user\n";
  • $ftp_rawlist = ftp_rawlist($connection, $ftp_dir);
  • $result=array_count_values($ftp_rawlist);
  • // Bof juste un chti tableau pour faire plus joli !
  • print("<table cellspacing=\"2\">");
  • print("<tr>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>connection</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>user</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"200\"><center><b>server:port</b></center></td>");
  • print("</tr>");
  • print("<tr>");
  • print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center>established</center></td>");
  • print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center>$ftp_user</center></td>");
  • print("<td bgcolor=\"#F0F0F0\" width=\"200\"><center>$ftp_server:$ftp_port</center></td>");
  • print("</tr>");
  • print("<tr>");
  • print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center><a href=\"?action=close\">disconnect</a></center></td>");
  • print("</tr>");
  • print("</table>");
  • // Retour du nom du repertoire en cours
  • // juste verification s'il vous prend l'envie de faire des modifs pour vous balader sur votre compte
  • $ftp_current_dir = ftp_pwd($connection);
  • echo "<br> Current listing for $ftp_current_dir:";
  • // Lalala un chti tableau encore
  • // Conseil regardez ce qu'il y a dedans, ca vous aidera à rajouter vos options :D
  • print("<form name=\"filelist\" action=\"actions.php\">");
  • print("<table cellspacing=\"2\">");
  • print("<tr>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"15\"><center><b>id</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"20\"></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>type</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>permission</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>designation</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"200\"><center><b>filename</b></center></td>");
  • print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>size</b></center></td>");
  • print("</tr>");
  • print("</table>");
  • // alors là , j'ai une flemme intense pour décrire alors je vais y aller gentillement
  • while ( list ($cle,$valeur)=each($result) )
  • {
  • // Variable à incrémenter pour faire les retour (recuperation de fichier et affichage des nums dans tableau
  • $incme =="-1";
  • // Concaténation des permissions, juste un découpage ^^
  • $permission = substr($cle,0,10);
  • // lalala lol pas dur à trouver
  • $designation = $cle[13];
  • // Le nom du fichier
  • $file = substr($cle,55);
  • // La taille du fichier
  • $file_size = ftp_size($connection, $ftp_dir.$file);
  • // Incrementation de ma variable du haut pour rappeller les autres fichiers par derriere
  • $incme++;
  • // OOOoooooh un joli tableau ^^
  • // la dedans c'est pas dur à comprendre :p
  • print("<table cellspacing=\"2\">");
  • if($incme%2 == 0) { print("<tr bgcolor=\"F0F0F0\">"); }
  • else { print("<tr bgcolor=\"#EAEAEA\">"); }
  • echo "<td width=\"15\"><center>$incme</center></td>";
  • echo "<td width=\"20\"><input type=\"checkbox\" name=\"selected\" value=\"$file\"></td>";
  • echo "<td width=\"120\"><center><b>(</b>";
  • if($file_size == -1) { print("directory"); } else{ print("file"); }
  • echo "<b>)</b></center></td>";
  • echo "<td width=\"100\"><center><b>(</b>$permission<b>)</b></center></td>";
  • echo "<td width=\"100\"><center><b>(</b>$designation<b>)</b></center></td>";
  • echo "<td width=\"200\"><b>(</b>$file<b>)</b></td>";
  • echo "<td width=\"100\"><center><b>(</b>";
  • if($file_size == -1) { print("..."); }
  • else { echo $file_size; }
  • echo "<b>)</b></center></td>";
  • print("</tr>");
  • print("</table>");
  • }
  • }
  • else
  • {
  • echo "Impossible de se connecter avec $ftp_user\n";
  • }
  • print("</form>");
  • ?>
  • <a href="index.php?action=establish">Connect</a>
  • <br>
  • <a href="index.php?action=close">Close</a>
<?
// Host de connexion
$ftp_server = "ftp.defaut.com";
// Port de connexion 21 defaut
$ftp_port = "21";
// Login utilisateur
$ftp_user = "user";
// Mot de passe utilisateur
$ftp_pass = "";
// Repertoire par defaut
$ftp_dir = "public_html/";

// Fermerture de la session en cours
if($action =="close") {
$connection = ftp_connect($ftp_server, $ftp_port) or die("Could not connect"); 
ftp_close($connection);
}

// Ouverture d'une session
if($action =="establish") {
$connection = ftp_connect($ftp_server, $ftp_port) or die("Could not connect");
} 

// Verification, si la connexion est faite
// Envoie d'un message bateau pour dire que c'est fait :p
// Recuperer la lite des fichiers sur le serveur par la connexion en cours
// Je compte combien j'ai de fichiers dans cette liste à la con ^^ (mais non elle est gentille)

	if (@ftp_login($connection, $ftp_user, $ftp_pass)) {
    		echo "Connection established with $ftp_server for $ftp_user\n";
		$ftp_rawlist = ftp_rawlist($connection, $ftp_dir);
		$result=array_count_values($ftp_rawlist);

// Bof juste un chti tableau pour faire plus joli !
print("<table cellspacing=\"2\">");
print("<tr>");
print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>connection</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>user</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"200\"><center><b>server:port</b></center></td>");
print("</tr>");
print("<tr>");
print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center>established</center></td>");
print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center>$ftp_user</center></td>");
print("<td bgcolor=\"#F0F0F0\" width=\"200\"><center>$ftp_server:$ftp_port</center></td>");
print("</tr>");
print("<tr>");
print("<td bgcolor=\"#F0F0F0\" width=\"120\"><center><a href=\"?action=close\">disconnect</a></center></td>");
print("</tr>");
print("</table>");

// Retour du nom du repertoire en cours 
// juste verification s'il vous prend l'envie de faire des modifs pour vous balader sur votre compte

$ftp_current_dir = ftp_pwd($connection);
		echo "<br> Current listing for $ftp_current_dir:";

// Lalala un chti tableau encore
// Conseil regardez ce qu'il y a dedans, ca vous aidera à rajouter vos options :D
print("<form name=\"filelist\" action=\"actions.php\">");
print("<table cellspacing=\"2\">");
print("<tr>");
print("<td bgcolor=\"#C0C0C0\" width=\"15\"><center><b>id</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"20\"></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"120\"><center><b>type</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>permission</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>designation</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"200\"><center><b>filename</b></center></td>");
print("<td bgcolor=\"#C0C0C0\" width=\"100\"><center><b>size</b></center></td>");
print("</tr>");
print("</table>");


// alors là , j'ai une flemme intense pour décrire alors je vais y aller gentillement

			while ( list ($cle,$valeur)=each($result) )
			{
// Variable à incrémenter pour faire les retour (recuperation de fichier et affichage des nums dans tableau
			$incme =="-1";
// Concaténation des permissions, juste un découpage ^^
			$permission = substr($cle,0,10);
// lalala lol pas dur à trouver
			$designation = $cle[13];
// Le nom du fichier
			$file = substr($cle,55);
// La taille du fichier
			$file_size = ftp_size($connection, $ftp_dir.$file);
// Incrementation de ma variable du haut pour rappeller les autres fichiers par derriere
			$incme++;

// OOOoooooh un joli tableau ^^
// la dedans c'est pas dur à comprendre :p

			print("<table cellspacing=\"2\">");
			if($incme%2 == 0) { print("<tr bgcolor=\"F0F0F0\">"); }
			else { print("<tr bgcolor=\"#EAEAEA\">"); }
			echo "<td width=\"15\"><center>$incme</center></td>";
			echo "<td width=\"20\"><input type=\"checkbox\" name=\"selected\" value=\"$file\"></td>";
			echo "<td width=\"120\"><center><b>(</b>";
			if($file_size == -1) { print("directory"); } else{ print("file"); }
			echo "<b>)</b></center></td>";
			echo "<td width=\"100\"><center><b>(</b>$permission<b>)</b></center></td>";
			echo "<td width=\"100\"><center><b>(</b>$designation<b>)</b></center></td>";
			echo "<td width=\"200\"><b>(</b>$file<b>)</b></td>";
			echo "<td width=\"100\"><center><b>(</b>";
			if($file_size == -1) { print("..."); }
			else { echo $file_size; }
			echo "<b>)</b></center></td>";
			print("</tr>");
			print("</table>");
			}
		}
		else
		{
    		echo "Impossible de se connecter avec $ftp_user\n";
	}
print("</form>");
?>
<a href="index.php?action=establish">Connect</a>
<br>
<a href="index.php?action=close">Close</a>

Conclusion

Et oui, le code est pas fini , c'est pour mettre à disposition une base de travail pour ceux qui veulent se faire la main la dessus :)
 

Commentaires et avis

signaler à un administrateur
Commentaire de Mechanicman le 25/03/2004 14:54:18

8/10 pour ton code...
Original, simple, pratique pour ceux qui n'ont pas de client FTP, et lisible. Bon je n'ai pas regardé en détail, mais ton code est bon. Peut etre pourrait tu implémenter une fonction de cryptage pour le mot de passe et/ou le nom utilisé..

Continue...

signaler à un administrateur
Commentaire de mortiis le 12/05/2004 20:23:07

Je crois qu'ajouter une fonction de cryptage pour le nom d'utilisateur et le mot de passe serait une grave erreur.

La raison est que dans le protocole ftp, ils ne sont pas crypté, alors si dans son script, il cripte les données, il ne sera plus compatible avec les serveur ftp.

Et si le script n'est plus compatible, il ne sert plus à rien.

Bon, mais peut-être que je raconte juste des conneries.

signaler à un administrateur
Commentaire de julien629 le 15/10/2004 02:24:54

WHAAA SA ROXXX :p

signaler à un administrateur
Commentaire de crashdown31 le 24/05/2006 21:49:19

le code ne fonctionne pas sur un serveur free ou est-je fait une erreur quelque part ?

Parse error: syntax error, unexpected T_DNUMBER in /......../index.php on line 3

signaler à un administrateur
Commentaire de Hiidalgo le 11/07/2008 17:29:56

Bonjour,

Dans le cadre d'un travail de recherche & documentation. Nous somme une équipe à travailler sur un serveur local & ftp comme base de donnée, je ne comprends pas bien comment fonctionne ce code pourrais-je avoir des précisions :
- pour le mettre en place
_ l'executer sur mon ftp

Merci d'avance

hiidalgo @ hotmail . com si vous voulez me joindre.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,39 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.