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

C Discussion :

Envoyer fichier serveur distant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Fabouney
    Invité(e)
    Par défaut Envoyer fichier serveur distant
    Bonjour,

    voila en fait, j'aimerais savoir comment je pourrais envoyer un fichier sur un serveur distant, via le protocole FTP, j'ai pensé à l'application fget (y'a t'il une fonction fget() en C, ou dois-je utiliser une application externe ?), merci de me dire ce qui serait possible, j'avais péché ca comme solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    HINTERNET hsession, hftp;
    hsession = InternetOpen ("monProg", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);//on ouvre la connection
    if(hsession == NULL) {
      printf("erreur connection");
      return;
    }
    hftp = InternetConnect(hsession, "monserveur ou adresse IP", INTERNET_DEFAULT_FTP_PORT, "login", "password", INTERNET_SERVICE_FTP, 0, 0);
    if(hftp) {
      FtpPutFile(hftp, "fichier.txt", "monfichiersurleserveur.txt", FTP_TRANSFER_TYPE_ASCII, 0);
      InternetCloseHandle(hftp);
    }
    else printf("erreur connection FTP");
    InternetCloseHandle(hsession);
    mais bon à la compilation ca bug, il me dit :

    src/iroffer_misc.c:1449: error: `HINTERNET' undeclared (first use in this functi
    on)
    src/iroffer_misc.c:1449: error: (Each undeclared identifier is reported only onc
    e
    src/iroffer_misc.c:1449: error: for each function it appears in.)
    src/iroffer_misc.c:1449: error: parse error before "hsession"
    src/iroffer_misc.c:1450: error: `hsession' undeclared (first use in this functio
    n)
    src/iroffer_misc.c:1450: warning: implicit declaration of function `InternetOpen
    '
    src/iroffer_misc.c:1450: error: `INTERNET_OPEN_TYPE_DIRECT' undeclared (first us
    e in this function)
    src/iroffer_misc.c:1455: error: `hftp' undeclared (first use in this function)
    src/iroffer_misc.c:1455: warning: implicit declaration of function `InternetConn
    ect'
    src/iroffer_misc.c:1455: error: `INTERNET_DEFAULT_FTP_PORT' undeclared (first us
    e in this function)
    src/iroffer_misc.c:1455: error: `INTERNET_SERVICE_FTP' undeclared (first use in
    this function)
    src/iroffer_misc.c:1457: warning: implicit declaration of function `FtpPutFile'
    src/iroffer_misc.c:1457: error: `FTP_TRANSFER_TYPE_ASCII' undeclared (first use
    in this function)
    src/iroffer_misc.c:1458: warning: implicit declaration of function `InternetClos
    eHandle'
    merci d'avance à bientot

  2. #2
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Citation Envoyé par Fabouney
    Bonjour,

    voila en fait, j'aimerais savoir comment je pourrais envoyer un fichier sur un serveur distant, via le protocole FTP, j'ai pensé à l'application fget (y'a t'il une fonction fget() en C, ou dois-je utiliser une application externe ?), merci de me dire ce qui serait possible, j'avais péché ca comme solution :
    Alors en C tu as as une fonction de la bibliothque standard qui s'appelle fgets() et qui permet de récupérer une chaine de caractères dans un tampon en lisant une ligne d'un flux d'entrée.
    Après tu as get (pour récupérer un fichier) et mget (multiple get, pour récupérer plusieurs fichiers) qui sont des sous-commandes de la commande ftp.
    Je ne connais pas de commande fget. De toutes façons, c'est envoyer unf cihier par ftp que tu veux, donc i=si il s'agit de commandes ftp, il s'agirait plutôt ds commandes put ou mput.



    Citation Envoyé par Fabouney
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    HINTERNET hsession, hftp;
    hsession = InternetOpen ("monProg", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);//on ouvre la connection
    if(hsession == NULL) {
      printf("erreur connection");
      return;
    }
    hftp = InternetConnect(hsession, "monserveur ou adresse IP", INTERNET_DEFAULT_FTP_PORT, "login", "password", INTERNET_SERVICE_FTP, 0, 0);
    if(hftp) {
      FtpPutFile(hftp, "fichier.txt", "monfichiersurleserveur.txt", FTP_TRANSFER_TYPE_ASCII, 0);
      InternetCloseHandle(hftp);
    }
    else printf("erreur connection FTP");
    InternetCloseHandle(hsession);
    mais bon à la compilation ca bug, il me dit :



    merci d'avance à bientot
    As-tu inclus le fchier d'entête wininet.h ? De même qu'il faut lier ses fichiers objets avec la bibliothèque wininet.lib.

    A+

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    foobar que veux tu dire par :

    De même qu'il faut lier ses fichiers objets avec la bibliothèque wininet.lib.
    j'ai bien rajouté ces lignes dans mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <wininet.h>
    #include <windows.h>
    voila

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Fabouney
    j'ai bien rajouté ces lignes dans mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <wininet.h>
    #include <windows.h>
    OK, ça, ce sont les interfaces (fichiers d'en-tête), mais on te parle de la bibliothèque (wininet.lib). Tu l'a ajoutée à ton projet ?

    http://emmanuel-delahaye.developpez....m#bibliotheque
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Fabouney
    Invité(e)
    Par défaut
    j'ai donc linké cette dll comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma comment(lib, "Wininet.lib")
    mais j'obtient ce message d'erreur a la compilation :

    warning: ignoring #pragma comment

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Fabouney
    j'ai donc linké cette dll comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma comment(lib, "Wininet.lib")
    Mauvaise méthode (non portable, c'est un bidule foireux de Microsoft...)
    mais j'obtient ce message d'erreur a la compilation :
    Pourquoi je ne suis pas étonné. Quel est ton environnement de développement (compilateur, IDE...)
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. ouverture fichier serveur distant
    Par warning_007 dans le forum Langage
    Réponses: 0
    Dernier message: 29/03/2010, 17h11
  2. Affichage fichier serveur distant
    Par oclone dans le forum ASP.NET
    Réponses: 15
    Dernier message: 10/02/2009, 10h28
  3. récupérer un fichier sur un serveur distant
    Par Phiss dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 18h02
  4. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18
  5. mettre un fichier .xls sur un serveur distant
    Par mael94420 dans le forum ASP
    Réponses: 2
    Dernier message: 05/01/2006, 18h51

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