Problème de transfert de fichier avec le protocole FTP

NerOcrO Messages postés 33 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 27 mai 2004 - 27 mai 2004 à 11:15
cs_douddou Messages postés 3 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 28 mai 2007 - 28 mai 2007 à 20:58
Voici index.php :
<?$rep="rep_que_vous_voulez"?>
<html>
<head>
<title></title>
</head>

<!-- La connexion avec le DNS ne fonctionne pas -->
<center><form name="connexion" method="post" action="test_ftp.php">
">

IP : 

Login : 

MDP : 

</form></center>

</html>


Voici test_ftp.php :
<code><?
session_start();
function supp($chaine1)
{
$chaine2="";
for($a=0;$a<strlen($chaine1);$a++)
{
if($chaine1[$a]==" ")
{
if($chaine1[$a+1]!=" ")
$chaine2=$chaine2.$chaine1[$a];
}
else
$chaine2=$chaine2.$chaine1[$a];
}
return($chaine2=explode(" ", $chaine2));
}
function Affichage_Rep($connexion)
{
// Accès au bon répertoire
ftp_chdir($connexion,$_SESSION['repertoire']);
// Répertoire en cours
$rep_courant=ftp_pwd($connexion);
echo '
Répertoire courant "'.$rep_courant.'"
';?>
Nom
<? // Fait une liste détaillée des fichiers dans un dossier
$ftp_rawlist=ftp_rawlist($connexion,$rep_courant);
// Transforme plusieurs caractères identique en un seul (ici, l'espace)
for($i=0;$i<count($ftp_rawlist);$i++)
{
$chaine2=supp($ftp_rawlist[$i]);?>
<table>----,
<?if($chaine2[0]{0}==\"d\")
echo $chaine2[8];
else{?>
\"><?=$chaine2[8]?>
<?}?>
</td>
<?=$chaine2[4]?>,
<?=$chaine2[6]." ".$chaine2[5]." ".$chaine2[7]?>

<?
}
}
?>
<html>
<head>
<style>
#titre{background-color:red;color:white;text-align:center;font-weight:bold}
.ct{text-align:center;width:100px}
</style>
</head>

<?
// Première venue et enregistrement des variables de session
if(isset($_POST['repertoire'])&&$_POST['test']==0)
{
$_SESSION['ip']=$_POST['ip'];
$_SESSION['login']=$_POST['login'];
$_SESSION['mdp']=$_POST['mdp'];
$_SESSION['repertoire']=$_POST['repertoire'];
// Le port est 21 et la connexion ne dure que 90 sec par défaut
$connexion=ftp_connect($_POST['ip'])or die("Impossible de se connecter à ".$_POST['ip']);
if(ftp_login($connexion,$_POST['login'],$_POST['mdp']))
{
echo "Connecté sur ".$_POST['login']."@".$_POST['ip']."
";
Affichage_Rep($connexion);
}
else
echo "Impossible de se connecter avec ".$_POST['ip'];
ftp_close($connexion);
}
// Partie quand on revient en arrière
else if(isset($_POST['test'])&&$_POST['test']==1)
{
$connexion=ftp_connect($_SESSION['ip'])or die("Impossible de se connecter à ".$_SESSION['ip']);
if(ftp_login($connexion,$_SESSION['login'],$_SESSION['mdp']))
{
echo "Connecté sur ".$_SESSION['login']."@".$_SESSION['ip']."
";
Affichage_Rep($connexion);
}
else
echo "Impossible de se connecter avec ".$_SESSION['ip'];
ftp_close($connexion);
}
// Partie de téléchargement
else if(isset($_GET['action']))
{
$connexion=ftp_connect($_SESSION['ip'])or die("Impossible de se connecter à ".$_SESSION['ip']);
if(ftp_login($connexion,$_SESSION['login'],$_SESSION['mdp']))
if(ftp_get($connexion,$_GET['action'],$_SESSION['repertoire']."/".$_GET['action'],FTP_BINARY))
{?>
Le fichier <?=$_GET['action']?> a été écrit avec succès.

<?}
else
echo "Echec de l'opération.";
ftp_close($connexion);?>
<form method="post" action="test_ftp.php">

</form>
<?
}
else
echo "Il faut se connecter au FTP avant.";
?>

</html></td></tr></table>

Ce script fonctionne dans l'ensemble sauf un truc essentiel : il ne sauvegarde pas le fichier voulu sur mon disque.
Explication :
Ce script est sur un site web, je suis chez moi et je lance ce script avec mon navigateur et je click sur un fichier pour le télécharger. Le fichier se télécharge bien mais pas chez moi, il est téléchargé sur le site web.
Je pense qu'il faut bien régler "ftp_get" au niveau du premier $_GET['action'] (chemin du téléchargement) mais je ne sais pas comment faire pour lui indiquer chez moi.
Bref, si vous savez comment faire pour le $_GET['action'] ou s'il existe une autre solution, ça serait bien aimable à vous de la faire partager surtout que je dois faire ça avant la semaine prochaine pour mon chef (non j'ai pas la pression).
Au fait, je suis obligé de passer par du HTTP et non directement en FTP car ça sera une appli pour des clients qui ont des proxy qui bloquent tout sauf le HTTP (clap clap clap les admins réseaux :p)

Merci ciao

3 réponses

cs_douddou Messages postés 3 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 28 mai 2007
28 mai 2007 à 16:31
Je ne peux pas t'aider mais je suis interesse par la reponse que certains pourront te fournir car j'ai le probleme que toi ^^
Si je le trouve entre temps je t'en ferais part ;)

Dany
0
cs_douddou Messages postés 3 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 28 mai 2007
28 mai 2007 à 20:25
J'ai trouve quelque chose mais ce n'est pas parfait.
avec mon lien
J'arrive a acceder a mon fichier mais le hic c'est que si c'est du format texte ca me l'affiche dans la page, si c'est du son avec quicktime ca peut le lire :/

Dany
0
cs_douddou Messages postés 3 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 28 mai 2007
28 mai 2007 à 20:58
Bon en fait je ne me suis pas foule j'ai mis un message tout bete faire "clic droit/enregistrer sous.."
J'espere que ca va t'aider ;)

Dany
0
Rejoignez-nous