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

MFC Discussion :

erreur putfile() sur connexion FTP


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 12
    Points
    12
    Par défaut erreur putfile() sur connexion FTP
    bonjour!
    jai un petit ennui avec la fonction PutFile() en c++
    jai un fichier en local que je veu transferer sur un serveur FTP.
    PutFile est idéale.

    voici ce qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pConnect->PutFile("local.log","local.log",FTP_TRANSFER_TYPE_BINARY,1);
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *test;
    test = "local.log";
    pConnect->PutFile("local.log","local.log",FTP_TRANSFER_TYPE_BINARY,1);

    le probleme c'est que le nom du fichier que je veux transferer est placé à l'interieur d'un tableau, et j'ai un probleme à ce niveau là.

    voici ce qui ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char nom[];
    char *test;
    test = nom;
    pConnect->PutFile(test,test,FTP_TRANSFER_TYPE_BINARY,1);


    merci pour les éléments de reponses que vous pourrez m'apportez.
    Cordialement,
    Stefane.


  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    roohhh .... test = "local.log" ... on est pas en VB

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Mais ça marche quand même: "local.log" est une donnée statique, et test un pointeur et non un tableau...

    Le seul reproche, c'est que dans ce cas je l'aurais plutot déclaré en const char * (ou en LPCSTR puisqu'on est sous windows)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    n'empeche, qu'il faut pas trop s'y risquer, et je me demande si ce qui est fait, est fait sciemment ...

    Pour faire avancer la chose ... il y a quoi dans nom ? c'est un tableau de caractères de combien de dimension contenant quoi ?

    Comme le dirait Aurélien, laisse tomber les char * (c'est mal) , et passe au string, voire au CString

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci mais le soucis c'est que meme en le declarant en LPCTSTR j'ai le meme resultat, il ne transfere pas le fichier

    char tonton[100]; // contient le nom du fichier a transferer
    .
    .
    .

    LPCTSTR test= tonton;
    envoi = pConnect->PutFile(test,test,FTP_TRANSFER_TYPE_BINARY,1);

    ca ne marche pas et je ne comprend pas pas pourquoi...

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    une petite question bête .
    tu es sur de mettre un \0 a la fin du nom de ton fichier ?
    tu peux montrer comment tu charges tonton ?

    l'utilisation d'un objet string ou CString regle ces problemes de manipulation de chaine ...


  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    c bon j'ai trouver l'erreur grace a toi!
    l'erreur venais de moi!
    en fait comme tu a dis je suis retourner au debut de mon programme pour voir comment j'avai creer mon tableau et mon fichier, et je me suis appercu que j'avai ouvert mon fichier "fopen()" pour ecrire a l'interieur mais que je ne l'avais pas refermer! donc bien sur je ne peut pas deplacer un fichier ouvert! j'ai donc fermer le fichier avec "fclose()" avant de le transferer "putfile()" sur le serveur FTP.

    Erreur que je ne referrai pas! jai perdu 5h !

    toujours remettre en question ce que l'on vien de faire...

    Merci beaucoup pour votre aide!
    @+
    stefane.

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par stefane1981
    c bon j'ai trouver l'erreur grace a toi!
    l'erreur venais de moi!
    en fait comme tu a dis je suis retourner au debut de mon programme pour voir comment j'avai creer mon tableau et mon fichier, et je me suis appercu que j'avai ouvert mon fichier "fopen()" pour ecrire a l'interieur mais que je ne l'avais pas refermer! donc bien sur je ne peut pas deplacer un fichier ouvert! j'ai donc fermer le fichier avec "fclose()" avant de le transferer "putfile()" sur le serveur FTP.

    Erreur que je ne referrai pas! jai perdu 5h !

    toujours remettre en question ce que l'on vien de faire...

    Merci beaucoup pour votre aide!
    @+
    stefane.
    d'ou l'utilité d'utiliser GetLastError() tu aurais eu certainement un acces denied comme retour (5)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    j'ai en effet utiliser getlasterror mai cela ma retourné la valeur 20

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    bizarre:
    // The system cannot find the device specified.
    //
    #define ERROR_BAD_UNIT 20L
    je me serais plutot attendu à
    //
    // MessageId: ERROR_SHARING_VIOLATION
    //
    // MessageText:
    //
    // The process cannot access the file because
    // it is being used by another process.
    //
    #define ERROR_SHARING_VIOLATION 32L
    a moins que ça soit 20 hexa ?


  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    l'erreur qui m'a été retournée est bien l'erreur numero 20

    20 The system cannot find the device specified. ERROR_BAD_UNIT
    c'est vrai que l'erreur que tu cites aurait été plus comprehensible
    ca me trouble je vais essayer de comprendre pourquoi et je te tiens au courant. étant donné que le nom du fichier que j'attribue est variable peut etre qu'il a cherché le fichier avant de le créer... je vais voir
    merci

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

Discussions similaires

  1. erreur code reponse connexion ftp
    Par andarius40 dans le forum Général Java
    Réponses: 6
    Dernier message: 19/07/2012, 15h02
  2. [AC-2010] Erreur 2447 sur Connexion
    Par MisterS dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/08/2010, 13h47
  3. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13

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