Ftp liste de fichiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 927 fois - Téléchargée 30 fois

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

Ajouter un commentaire Commentaires
Messages postés
68
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
31 janvier 2009

c'est une bonne idée mais dommage qu'il ne marche pas
Messages postés
10
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
12 juillet 2008

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.
Messages postés
2
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
25 mai 2006

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
Messages postés
4
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
20 février 2006

WHAAA SA ROXXX :p
Messages postés
120
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
9 mars 2008

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.
Afficher les 6 commentaires

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.