Ftp Wininet [Résolu]

- - Dernière réponse :  Utilisateur anonyme - 7 août 2006 à 21:37
A l'aide je me ss aidé de la msdn pr obtenir le code suivant:
Mains il creer juste le fichier pio.txt sur mon ftp sans le contenu et bien sur a l'ecran c'est afiché echec.
Voici le code:

#include<stdio.h>
#include<windows.h>
#include<wininet.h>


int main(void)
{   
 HINTERNET InternetSession;
 HINTERNET FtpConnect;
    
 InternetSession = InternetOpen("testFtp" , INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
FtpConnect = InternetConnect ( InternetSession, "ftp.membres.lycos.fr", INTERNET_DEFAULT_FTP_PORT, "LOGIN", "PASS", INTERNET_SERVICE_FTP, 0, 0);
    
 if(TRUE==FtpPutFile( FtpConnect, "pio.txt", "pio.txt", FTP_TRANSFER_TYPE_BINARY, 0))
    printf("Reussi");
 else printf("Echec");
    
InternetCloseHandle(FtpConnect);
InternetCloseHandle(InternetSession);
    
Sleep(10000);
return 0;  
}



MaLaDeDeDe 97one 
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
3
Merci
!~yep~!

Alors j'ai parlé de mon probleme a un ami et il m'a dit de vérifier si le server n'était pas en mode passive.
J'ai donc commencé a chercher sur internet ce que cela signifié et j'ai trouvé cela: http://www.dicodunet.com/definitions/hebergement/ftp-passif.htmet et http://slacksite.com/other/ftp.html
et sur ces sites on montre bien que pour le data... ce ne sont pas les memes port utilisé d'ou le probleme pour envoyer un fichier et lister le contenu d'un repertoire.

Alors maintenant j'ai regardé comment mettre en mode passive avec wininet et j'ai trouvé qu'il fallait mettre un flag:

<<>>

Je suis pas sur mon ordi je dois changé la RAM dés que cela sera je vais tester cela: WinInet en mode passive sur lycos et je vous dit si cela marche
MaLaDeDeDe 97one 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
3
Merci
VOILA ENFIN CA MARCHE !!!

Le serveur ftp étant en mode passive il faut mettre le FLAG INTERNET_FLAG_PASSIVE à la fonction InternetConnect () :
InternetConnect ( hInternetSession, ftpi, INTERNET_DEFAULT_FTP_PORT , logi, passi, INTERNET_SERVICE_FTP,  INTERNET_FLAG_PASSIVE, 0);

MaLaDeDeDe 97one 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
59
Date d'inscription
dimanche 19 décembre 2004
Dernière intervention
1 septembre 2006
0
Merci
Il me semble avoir vu quelque part que le Sleep fermait la connection ou un truc du genre...
Essaye en mettant un boucle d'attente à la place, avec une vérification de la taille du fichier sur le serveur distant.
Commenter la réponse de MNEMONIC
0
Merci
Oui mais meme sans le sleep ca marche pas et la je l'ai placé aprés avoir fermé la conection :(

MaLaDeDeDe 97one 
Commenter la réponse de Utilisateur anonyme
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
17 septembre 2012
1
0
Merci
Salut,
Verifie le retour de chaque fonction et en cas d'erreur affiche la valeur de retour de GetLastError().
Commenter la réponse de cs_aardman
0
Merci
InternetOpen et FtpConnect marche bien c'est pour FtpPutFile l'eereur retourné est 2.
je vais voir la signification de l'erreur 2 sur msdn
MaLaDeDeDe 97one 
Commenter la réponse de Utilisateur anonyme
Commenter la réponse de Utilisateur anonyme
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
17 septembre 2012
1
0
Merci
Salut,

Erreur 2: Le fichier spécifié est introuvable.

Apparement ca vient du fichier local, essayes de mettre son chemin complet FtpPutFile().
Commenter la réponse de cs_aardman
0
Merci
Merci j'ai plus la meme erreur maintenant c'est l'erreur:

<dt>ERROR_INTERNET_TIMEOUT
</dt><dd>12002
MaLaDeDeDe 97one </dd>
Commenter la réponse de Utilisateur anonyme
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
16
0
Merci
Très bon l'explication de MNEMONIC. Déja aucune raison que le Sleep coupe la connxion, mais de toute facon il se situe à la fin du code, après la fermeture explicite de la connexion

_____________________________________
Un éditeur de ressources gratuit pour Windows
Commenter la réponse de vecchio56
Messages postés
1244
Date d'inscription
jeudi 31 mars 2005
Dernière intervention
3 août 2016
1
0
Merci
Met le chemin complet du fichier local , si cela ne va toujours pas essye FTP_TRANSFER_TYPE_ASCII à la place de FTP_TRANSFER_TYPE_BINARY , bien que je pense que dans les 2 cas cela devrait fonctionner, mais on ne sais jamais.
Commenter la réponse de deck_bsd
Messages postés
1244
Date d'inscription
jeudi 31 mars 2005
Dernière intervention
3 août 2016
1
0
Merci
Si tu ne veu pas mettre le chemin complet dans ton nom de fichier , fait un
SetCurrentDirectory(char * szPath); avant avec le chemin du fichier.
Commenter la réponse de deck_bsd
0
Merci
Non je n'ai pas mit SetCurrentDirectory parceque ca ne me derange pas de marquer la root du fichier local.
Sinon toujours la meme erreur :( que le fichier soit envoyé en binaire ou interprété comme carctaire :(

MaLaDeDeDe 97one 
Commenter la réponse de Utilisateur anonyme
0
Merci
J'ai testé sur mon compte ftp ifrance et ca marche nikel.
Alors je pense que wininet marche pas avec lycos multimania.
Je ne vois que ca!

Parceque j'ai juste changé les identifiants et l'adresse FTP et ca a marché pour ifrance.
Et pour Lycos ca marche pas ca crée juste le fichier texte pio.txt mais sans transmettre le contenu.

Alors je pense qu'on ne peut rien faire :'(

MaLaDeDeDe 97one 
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.