IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Transfert FTP sur dédié


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Par défaut [FTP] Transfert FTP sur dédié
    Salut à tous,

    J'essaye péniblement d'envoyer un fichier par ftp via un formulaire HTML, scénario classique ... J'ai trouvé des explications sur l'upload http via formulaire mais voilà dans le cas présent, j'ai la contrainte de passer par ftp (serveur vsftpd sur hébergement dédié qui fonctionne bien) ... Avant, il n'arrivais pas à se connecter, et maintenant, j'ai pas d'erreur mais il ne m'upload pas mon fichier ... ça m'avance pas des masses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <?php 
    // SI LE FORMULAIRE A ETE ENVOYE
    if (isset($_POST['upload'])){
        // SI LE FICHIER A UPLOADER N EST PAS SPECIFIE
            if(($_POST['LocalPDF'] == "") || ($_POST['Choix'] == "VotreChoix") ) {
    	echo('<span class="erreur">Veuillez sp&eacute;cifier le fichier a uploader' . '</br>' .'et votre choix SVP</span>');
    	}
    	else{
    		// ON TRAITE LA DEMANDE
    		$ftp_server = "ftp.mondomaine.fr";
    		$ftp_user_name = "monloginFTP";
    		$ftp_user_pass = "monpassFTP";
    		$source_file = $_POST['LocalPDF'];
    		// POUR TESTER EN LOCAL
    		eregi_replace("C:\wamp\www", '/', $source_file); 
    		$fichier=$_POST['LocalPDF'];
    		//fichier de destination
    		$path_parts = pathinfo($fichier);
    		$destination_file=$path_parts['filename'] . '.' . $path_parts['extension'];
    		// connnection au serveur FTP
    		$conn_id = ftp_connect($ftp_server, 21, 5);
    		$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
     
    		// Vérification de la connexion
    		if ((!$conn_id) || (!$login_result)) { 
                      echo '<span class="erreur"> La connexion FTP a &eacute;chou&eacute; ! </span>';
    	          echo '<span class="erreur">Tentative de connexion au serveur ' . $ftp_server . ' pour l\'utilisateur' . $ftp_user_name . '</span>'	; 
        	    	  exit; 
    	    	} else {
        	    		echo '<span class="erreur">Connexion au serveur ' . $ftp_server.', pour l\'utilisateur '. $ftp_user_name. '$destination_file = ' . $destination_file . ' $source_file = ' . $source_file .'</span>' ;
        			}
     
    		// Chargement du fichier
    		$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 
     
    		// Vérification du status du chargement
    		if (!$upload) { 
       		   echo "Le chargement FTP a &eacute;chou&eacute; !";
    		} 
                    else {
        		   echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
    	    	}
    		// Fermeture du flux FTP
    		ftp_close($conn_id); 
    	}
    }
    ?>
     
     
    <html>
    <head>
    <title>Envoyer un fichier PDF</title>
    </head>
    <body>
    <p>
    <form action="" method="post" name="uploadPDF" enctype="multipart/form-data">
    <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
        <tr><td>
          <select name="Choix" id="Choix">
          <option value="VotreChoix">VotreChoix</option>
          <option value="Choix1">Choix1</option>
              <option value="Choix2">Choix2</option>
          <option value="Choix3">Choix3</option>
          </select>
        </td></tr>
        <tr>
        	<td>Fichier &agrave; t&eacute;l&eacute;charger</td>
            <td><input type="file" id="LocalPDF" name="LocalPDF"></td>
        </tr>
        <tr><td  height="50" colspan="2"><div align="center"><input type="submit" name="upload" value="envoyer le fichier"></div></td></tr>
    </table>
    </form>
    </p>
    </body>
    </html>

  2. #2
    Membre expérimenté
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Par défaut
    Vérifie que ton serveur n'est pas en mode passif.
    Dans ce cas essaye la fonction ftp_pasv( $conn_id , true)
    à mettre avant le ftp_put.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Par défaut
    J'ai fait ce que tu m'as dit et là il me répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Warning: ftp_put(bg.png) [function.ftp-put]: failed to open stream: No such file or directory in C:\wamp\www\mapage.php on line 54
     
    Le chargement FTP a échoué !
    // //  ça ça vient de
    		if (!$upload) { 
       		   echo "Le chargement FTP a &eacute;chou&eacute; !";
    		}



    J'ai fait un echo qui me donne pourtant bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $destination_file = bg.png 
    $source_file = bg.png
    Apparemment, il arrive à se connecter mais il ne charge pas l'image "bg.png"

    Sous filezilla je me connecte sans prob ... c'est frustant

  4. #4
    Membre expérimenté
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Par défaut
    Peux tu essayer la fonction ftp_rawlist à la place de ftp_put ?
    (Je serai de retour vers 12h00)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Par défaut
    Il me renvoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le chargement FTP a échoué !
    je l'ai mis ainsi à la place de ftp_put
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ftp_rawlist($conn_id, '/'); 
    // Vérification du status du chargement
    if (!$upload) {

    (Je suis sous WAMP5 APACHE2 PHP5 MySQL5)

    En tout cas c'est super sympa de me filer un coup de main, surtout en ce moment

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est votre client qui doit établir la connexion FTP puis lui envoyer le fichier. Le serveur HTTP ne peut pas le faire à sa place, il ne peut faire office que d'intermédiaire ce qui signifie que le client devrait d'abord lui envoyer le fichier par HTTP (Upload de fichiers en PHP) pour que ce dernier le retransmette au serveur FTP.

    (L'exception où ça fonctionne est en local : le client et le serveur HTTP sont sur une même machine)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [proFTPd] Ecouter sur un autre port que 21 pour les transferts FTP
    Par razbitume dans le forum Administration système
    Réponses: 9
    Dernier message: 05/08/2009, 18h36
  2. Réponses: 3
    Dernier message: 14/04/2009, 18h56
  3. Transfert FTP net::ftp
    Par devjcc dans le forum Modules
    Réponses: 5
    Dernier message: 12/05/2006, 12h43
  4. [FTP] Transfert ftp Terminé
    Par yanis97 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 21/02/2006, 16h18
  5. [] [Réseau] Transfert fichier sur un FTP
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/02/2003, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo