Ftp liste de fichiers

Contenu du snippet

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 / Exemple :


<?
// 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 :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.