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 :

[Simple] Télécharger un Fichier


Sujet :

C

  1. #1
    Halobox
    Invité(e)
    Par défaut [Simple] Télécharger un Fichier
    Bonjour a tous,

    Ayant chercher sur le web (votre site/forum et google), je n'ai aps trouver réponse à ma question.


    Je recherche un moyen simple de télécharger un fichier (protocole http) en langage C

    J'ai chercher vers :

    system()
    inet
    telnet

    mais je n'ai pas trouvé, quelqu'un pourrait'il m'aiguiller svp ?




    Merci d'avance.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: [Simple] Télécharger un Fichier
    Citation Envoyé par Halobox
    Je recherche un moyen simple de télécharger un fichier (protocole http) en langage C
    curl

  3. #3
    Halobox
    Invité(e)
    Par défaut
    Merci, je vais voir du coté de cette bibliothèque.

    A+

  4. #4
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    A propos si tu as reussi pourrait tu poser ton code ici , j ai fait des recherche sur le net curl download to file etc mais rien trouvé de direct comme exemple de code

    si tu as trouvé ca serait sympa de poster ici

    merci

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par venomelektro
    A propos si tu as reussi pourrait tu poser ton code ici , j ai fait des recherche sur le net curl download to file etc mais rien trouvé de direct comme exemple de code
    http://curl.haxx.se/

  6. #6
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    oui j ai vu ce site mais concretement je trouve pas comment faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CURL* easyhandle = curl_easy_init(); 
    	 curl_easy_setopt(easyhandle,CURLOPT_URL,"http://www.monsite.com/imgs/mon_image.jpg", NULL);
    	 curl_easy_setopt(easyhandle,CURLOPT_HEADER, 0);
    	 FILE *f = fopen("image.jpg","wb");
    	 curl_easy_setopt(easyhandle, CURLOPT_FILE, f);
    	 curl_easy_perform((CURL*)easyhandle);
    ca plante a curl_easy_perform

    j ai essayé en passant un nom de fichier plutot qu un FILE* --> la meme

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par venomelektro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CURL* easyhandle = curl_easy_init(); 
     
    	 curl_easy_perform((CURL*)easyhandle);
    ca plante a curl_easy_perform
    Pourquoi je ne suis pas étonné! Le cast est plus que suspect... Quel est le type attendu ?

    http://curl.haxx.se/libcurl/c/curl_easy_perform.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CURLcode curl_easy_perform(CURL * handle );
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 curl_easy_perform(easyhandle);
    pour ce qui est du codage.

    Maintenant, peut être bien qu'il faut tester les codes retour et ne pas faire telle ou telle action en cas de défaut...

    Vérifier aussi que le mode opératoire est bien celui-ci...

    (je ne connais pas du tout libcurl, mais ça a l'air bien...)

  8. #8
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    Merci

    sans le cast ca donne pareil et en testant tout les code de retours sur tous mes appels a curl_xxx j ai que des 0 ...

    ca doit pas etre la bonne methode donc !

    moi non plus je ne connais pas a ca a l air bien mais je me dis que pour le peu que je veux l utiliser pour mon projet en cours (download d un fichier du net) ca serait cool que je trouve un exemple de code complet

    genre une fonction curl_easy_dowload_to_file() lol mais on dirait que non ...

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par venomelektro
    moi non plus je ne connais pas a ca a l air bien mais je me dis que pour le peu que je veux l utiliser pour mon projet en cours (download d un fichier du net) ca serait cool que je trouve un exemple de code complet
    Tu as lu ça ?

    http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

  10. #10
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    ok en fait il semble qu il faut ecrire soit meme la fonction d ecriture :

    static size_t writeFunction(void *ptr, size_t size, size_t nmemb,void *stream)


    je m y colle et poste ici si j y arrive

  11. #11
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    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
     
     
    FILE *f = NULL;
     
    size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) {
     
    	int len = size * nmemb;
    	fwrite(buffer,sizeof(unsigned char),len,f);
    	return len;
     
    }
     
    void main()
    {
     
     
    f = fopen("local.html","w");
     
    CURL *c = curl_easy_init();
     
    curl_easy_setopt(c,CURLOPT_WRITEFUNCTION  ,write_data);
    curl_easy_setopt(c, CURLOPT_HEADER, 0);
    curl_easy_setopt(c, CURLOPT_URL,"http://www.monsite.com/monfichier.html");
     
    curl_easy_perform(c);
     
    }

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par venomelektro
    OK. En lisant mieux la doc, on doit pouvoir se passer de la globale... (important si on charge plusieurs fichiers en même temps)...

  13. #13
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    yes surement , en fait je travaille sur une version c++ avec un FILE * en membre mais comme on est sur un forum C si qq un a une version mieux a proposer je suis pour !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par venomelektro
    yes surement , en fait je travaille sur une version c++ avec un FILE * en membre
    Rien à voir. En C aussi, on sait faire de l'objet...
    mais comme on est sur un forum C si qq un a une version mieux a proposer je suis pour !
    Il doit y avoir un CURLOPT_XXX pour enregistrer le paramètre userp. C'est lui qui servira de FILE*...

  15. #15
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par venomelektro
    yes surement , en fait je travaille sur une version c++ avec un FILE * en membre
    Rien à voir. En C aussi, on sait faire de l'objet...
    .
    oui oui , pas tapper ..))

    je voulais dire : j ai ma version en c++ et je voulais pas la poster ici car c est un forum C , du coup j ai fait ca vite fait

Discussions similaires

  1. [FTP] Télécharger un fichier par FTP
    Par jerome38000 dans le forum Langage
    Réponses: 5
    Dernier message: 27/05/2011, 15h41
  2. Télécharger un fichier texte et l'importer
    Par NooD dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/07/2006, 11h59
  3. Télécharger un fichier Zip depuis une adresse internet
    Par jmjmjm dans le forum Web & réseau
    Réponses: 8
    Dernier message: 18/10/2005, 19h12
  4. Problème pour Télécharger des fichiers
    Par joce3000 dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/01/2005, 10h30
  5. [FTP] Télécharger un fichier
    Par Piolet dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/12/2004, 10h42

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