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 :

Upload fichier sur ftp


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut Upload fichier sur ftp
    Bonjour à vous,
    je test l'envoi de fichiers en local (avec Wampserver) sur un ftp.
    Le code resssemble donc à ça :
    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
    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
    if (isset($_FILES['image1']) AND $_FILES['image1']['error'] == 0)
    {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['image1']['size'] <= 2000000)
            {
                    // Testons si l'extension est autorisée
                    $infosfichier = pathinfo($_FILES['image1']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
    					//connexion au ftp
    				$serveur_ftp='ftp.xx.ovh.net';
    				$login_ftp='xx';
    				$mp_ftp='xx';	
    				$ftp = ftp_connect($serveur_ftp, 21);
    				ftp_login($ftp, $login_ftp, $mp_ftp);
     
     
    				                       // On peut valider le fichier et le stocker définitivement
                            move_uploaded_file($_FILES['image1']['tmp_name'], 'ftp://xx.ovh.net/www/images_upload/' . basename($_FILES['image1']['name']));
                            echo "L'envoi a bien été effectué !";
    Le problème est que je me retrouve avec l'erreur
    Fatal error: Uncaught Error: Call to undefined function ftp_connect()
    En regardant plusieurs forum, j'ai vu qu'il faudrait "décommenter la ligne ;extension=php_ftp.dll dans le php.ini de wamp server", mais j'avoue que je ne sais pas ce que ça veut dire et je ne trouve pas cette ligne là dans le php.ini.
    Est-ce que quelqu'un pourrait me dire si le problème vient bien de là et m'éclairer ?

    Merci beaucoup d'avance

  2. #2
    Membre régulier Avatar de abdennour bouaicha
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 98
    Points : 112
    Points
    112
    Par défaut
    si t'as activé l'extension php_ftp.dll n'oublie pas redémarrer le wamp

  3. #3
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    je suis désolé, je suis un peu débutant en php, mais pour décommenter la ligne, il faut la rajouter dans php.ini ?? j'avoue que je ne sais pas comment faire formellement. Du coup j'ai rien fait et rien activé...
    tu pourrais m'en dire plus ?

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour dé-commenter une ligne dans le fichier de config, il suffit de supprimer le ; devant

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1. Sur l’icône de wamp manager, tu fais un clique droite --> php --> tu coches sur le module ftp. Si tu as installé wamp en tant qu'admin "Run as administrator", tu dois lancé wamp en tant qu'administrateur pour pouvoir faire cette modification. Tu peux aussi utiliser phpinfo(); pour trouver la localisation du fichier de configuration utilisé.
    2. Utilise la fonction ftp_put pour envoyer le fichier sur le serveur ftp mais pas move_uploaded_file.
    3. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      				$serveur_ftp='ftp.xx.ovh.net';
      				$login_ftp='xx';
      			$mp_ftp='xx';
      Je te conseille de mettre ces valeurs dans une fichier de configuration.



    A+.

  6. #6
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    merci beaucoup de tes conseils andry.aime.
    j'ai donc fais les modifications nécessaires sur wamp et j'ai changé le code pour l'adapter sur un ftp_put. ça donne :
    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
    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
    if (isset($_FILES['image1']) AND $_FILES['image1']['error'] == 0)
    {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['image1']['size'] <= 2000000)
            {
                    // Testons si l'extension est autorisée
                    $infosfichier = pathinfo($_FILES['image1']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
    					//connexion au ftp
    				$serveur_ftp='ftp.xx.ovh.net';
    				$login_ftp='xx';
    				$mp_ftp='xx';	
    				$ftp = ftp_connect($serveur_ftp, 21);
    				ftp_login($ftp, $login_ftp, $mp_ftp);
     
     
    				                       // On peut valider le fichier et le stocker définitivement
                           if (ftp_put($ftp,'ftp://ftp.xx.ovh.net/www/images_upload/'.basename($_FILES['image1']['name']),$_FILES['image1']['tmp_name'],FTP_ASCII)){
     echo "Le fichier $_FILES a été chargé avec succès\n";
    } else {
     echo "Il y a eu un problème lors du chargement du fichier $_FILES\n";
    }
                    }
            }
    		// Fermeture de la connexion
    ftp_close($ftp);
    }
    du coup, ça marche un peu mieux, mais j'ai un nouveau message d'erreur :
    ftp_put(): Can't open that file: No such file or directory
    . j'ai essayé en enlevant .basename($_FILES['image1']['name']) sur le deuxième paramètre, mais là je me retrouve avec l'erreur :
    ftp_put(): Prohibited file name: ftp:/ftp.xx.ovh.net/www/images_upload/
    du coup, je n'arrive pas à voir quelle valeur doit prendre ce paramètre remote_file
    vous auriez une idée pour corriger cela ?
    et autrement, tu mettrais les identifiants de connexion dans un autre fichier pour des conditions de sécurité ?

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp_put($ftp,'/www/images_upload/'.basename($_FILES['image1']['name']),$_FILES['image1']['tmp_name'],FTP_ASCII)
    A+.

  8. #8
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    merci andry.aime pour ta réponse...ça évolue tranquillement...
    du coup maintenant je me suis retrouvé avec le message d'erreur :
    Warning: ftp_put(): PORT command successful
    je suis sur le port 21, mais j'avoue ne pas savoir si je peux mettre un autre port
    désolé...

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Utilise une connexion en mode passive

    A+.

  10. #10
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    super, merci...ça fonctionne : ça envoie bien le fichier... sauf que celui-ci semble être endommagé. Il contient des erreurs et ne peut être lu.

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Au lieu d'utiliser le mode FTP_ASCII, utilise plutôt FTP_BINARY.

    A+.

  12. #12
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    ah super !!!
    merci vraiment beaucoup andry.aime, tu m'as enlevé une grosse épine du pied !
    Passes une très bonne journée !

  13. #13
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut petite question subsidiaire
    bon...tout marche très bien mais...voulant aller un peu plus loin, j'ai autorisé l'extension pdf, mais là le fichier ne passe pas.
    a priori, il ne franchi pas la première barrière de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_FILES['image1']) AND $_FILES['image1']['error'] == 0)
    je ne sais pas comment savoir l'erreur exacte ni comment la corriger.
    Je suis désolé, j'abuse !

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    C'est ici que ça ne passe pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
    L'extension pdf n'est pas inclue.

    A+.

  15. #15
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    en fait, depuis j'ai modifié le code en rajoutant l'extension et en mettant des messages d'erreur à chaque étape
    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
    if (isset($_FILES['image1']) AND $_FILES['image1']['error'] == 0)
    {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['image1']['size'] <= 3000000)
            {
                    // Testons si l'extension est autorisée
                    $infosfichier = pathinfo($_FILES['image1']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png','pdf');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
    					//connexion au ftp
    				$serveur_ftp='ftp.xx.ovh.net';
    				$login_ftp='xx';
    				$mp_ftp='xx';	
    				$ftp = ftp_connect($serveur_ftp, 21);
    				ftp_login($ftp, $login_ftp, $mp_ftp);
    				ftp_pasv($ftp, true);
     
    				//on créé le dossier
    				if (ftp_mkdir($ftp, '/www/images_upload/'.$essai)) {
     echo "Le dossier $essai a été créé avec succès\n";
    } else {
     echo "Il y a eu un problème lors de la création du dossier $essai\n";
    }
    				                       // On peut valider le fichier et le stocker définitivement
                           if (ftp_put($ftp,'/www/images_upload/'.$essai.'/'.basename($_FILES['image1']['name']),$_FILES['image1']['tmp_name'],FTP_BINARY)){
     echo "Le fichier $_FILES a été chargé avec succès\n";
    } else {
     echo "Il y a eu un problème lors du chargement du fichier $_FILES\n";
    }
                    }else{echo "souci d'extension";}
            } else{echo "souci de taille";}
    		// Fermeture de la connexion
    ftp_close($ftp);
    }
    else {echo "souci de fichier";}
    et du coup a priori c'est la première ligne qui bloque

  16. #16
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    bon en fait, c'est bon, j'ai modifié le formulaire de saisie en acceptant les fichiers pdf à la source en rajoutant et du coup ça fonctionne très bien maintenant.

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

Discussions similaires

  1. Winsocks : Upload fichier sur ftp via proxy
    Par evuillet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2015, 03h50
  2. [PHP 5.3] upload fichier sur ftp via php
    Par victoires dans le forum Langage
    Réponses: 1
    Dernier message: 11/10/2011, 14h49
  3. [.NET2]Upload Fichier sur FTP (FtpWebRequest)
    Par nephhh dans le forum C#
    Réponses: 0
    Dernier message: 16/08/2007, 22h16
  4. [.NET 2.0] Probleme upload fichier sur ftp avec My
    Par Aspic dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/03/2007, 09h10
  5. [Upload] upload fichier sur ftp free
    Par Halukard dans le forum Langage
    Réponses: 61
    Dernier message: 12/02/2006, 20h50

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