Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : transfert FTP [ Archives / Réseau / Internet ] (Darkukai)

vendredi 24 janvier 2003 à 17:09:48 | transfert FTP

Darkukai

bonjour à tous
je dois dévelloper un petit exe qui s'identifie et envoie un fichier sur un serveur ftp avec des paramètres rentrer par l'utilisateur (user,pass,source,destination, et ip du serveur)
pouvez vous m'indiquez si un tel projet a déjà été fait et ou je pourrais trouver des sources ou des exemple car la je nage dans le brouillard :)

Merci d'avance

samedi 22 février 2003 à 18:49:50 | Re : transfert FTP

MegaMickx

Salut,

Moi j'en ais fait un programme avec des transfert en FTP
Voici le code qui doit te permettre de te connecter a un serveur et de
télécharger les fichiers présent sur ce dernier:


#include<afxinet.h>
#include<stdio.h>
#include<direct.h>

HINTERNET hInternetSession; // handle to internet connection
HINTERNET hFTPSession; // handle to FTP session
HINTERNET hFileConnection; // handle to file enumeration
WIN32_FIND_DATA sWFD; // structure to hold FIND data
FILE *trace;

int __cdecl main(int argc,char *argv[])
{
int erreur,nb,n,i,premier=0;
BOOL result,resultF;
char adresse_ip[100];
char login[100];
char mot_de_passe[100];
char fichier_dest[150];
char fichier_trace[150];
char fichier_dest2[180];
char chaine[500];
char nom_fic[150];
char temp[180];
char nouv[150];
char chemin_fichier[75];

if(argc<5)
{
printf("Il manque des arguments");
return 1;
}

strcpy(adresse_ip,argv[1]);
strcpy(login,argv[2]);
strcpy(mot_de_passe,argv[3]);
strcpy(fichier_dest,argv[4]);

sprintf(temp,
"%*.*s",
strrchr(fichier_dest,'\\')-fichier_dest,
strrchr(fichier_dest,'\\')-fichier_dest,
fichier_dest
);
sprintf(nouv,"%s_sauvegarde",temp);

sprintf(chemin_fichier,
"%*.*s",
strrchr(temp,'\\')-temp+1,
strrchr(temp,'\\')-temp+1,
temp
);

erreur=_mkdir(temp);

sprintf(fichier_trace,"%strace_MAJ_LM.txt",fichier_dest);
trace=fopen(fichier_trace,"w");


// Open Internet Session
HINTERNET hSession;
hSession = InternetOpen("toto", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL,
0);

if (hSession)
{
printf("\nConnexion au serveur FTP");
// Connexion au serveur FTP
HINTERNET hService;
hService = InternetConnect(hSession, adresse_ip,
INTERNET_DEFAULT_FTP_PORT, login, mot_de_passe,
INTERNET_SERVICE_FTP, 0, 0);

if(!hService)
{
nb=fwrite("Connexion à l'ordinateur distant
impossible\n",sizeof( char ),43,trace);
printf("Connexion à l'ordinateur distant impossible\n");
}


for(i=0;i<argc-4;i++)
{
printf("dossier n %d en cours de transfert",i);
if (hService)
{
if(premier==0)
{
premier=1;
}
else
{
if(argc>5 && i<=(argc-4))
{
if(i>=2)
{
FtpSetCurrentDirectory(hService,"..");
//On revient un repertoire en arrière
}
printf("Nom du dossier a recuperer <%s>
\n",argv[4+i]);
result= FtpSetCurrentDirectory(hService,
argv[4+i]); //Recherche un repertoire sur le serveur et si trouvé on se
place dedans
if (result != TRUE)
{
nb=fwrite("repertoire impossible a
trouver sur le serveur FTP\n",sizeof( char ),50,trace);
printf("repertoire impossible a trouver
sur le serveur FTP");
}

strcpy(temp,fichier_dest);
strcat(temp,argv[4+i]);
sprintf(temp,"%s%s",argv[4],argv[4+i]);
erreur=_mkdir(temp);
sprintf(fichier_dest,"%s\\",temp);
}
}
//Recherche le nom du premier fichier du repertoire

hFileConnection = FtpFindFirstFile(hService,"*",
&sWFD,0,0);

memset(nom_fic,'\0',sizeof(nom_fic));
strcpy(nom_fic,sWFD.cFileName);

strcpy(fichier_dest2,fichier_dest);
strcat(fichier_dest2,nom_fic);

// Téléchargement du fichier
result = FtpGetFile(hService, nom_fic, fichier_dest2,
0, 0, FTP_TRANSFER_TYPE_BINARY, 0);
DWORD error_two = GetLastError();

//Gestion des erreurs pour le transfert de fichier +
ecriture fichier de trace
if(result!=1)
{
strcpy(chaine,"Transfert du fichier ");
strcat(chaine,nom_fic);
strcat(chaine," impossible\n");
n=strlen(chaine);
nb=fwrite(chaine,sizeof( char ),n,trace);
printf("Transfert du fichier %s impossible\n",
nom_fic);
}
else
{
strcpy(chaine,"Fichier ");
strcat(chaine,nom_fic);
strcat(chaine," transféré avec succès\n");
n=strlen(chaine);
nb=fwrite(chaine,sizeof( char ),n,trace);
printf("\nFichier %s transfere\n", nom_fic);

}
}

resultF=1; //Initialisation de resultF à 1 pour pouvoir
rentrer dans la boucle
while(resultF==1) //resultF=1 -> tant qu'on trouve des
fichiers on continu
{
//Cherche le nom des fichiers suivants
resultF = InternetFindNextFile(hFileConnection, &sWFD);

memset(nom_fic,'\0',sizeof(nom_fic));
strcpy(nom_fic,sWFD.cFileName);

strcpy(fichier_dest2,fichier_dest);
strcat(fichier_dest2,nom_fic);

// Téléchargement du fichier
result = FtpGetFile(hService, nom_fic, fichier_dest2,
0, 0, FTP_TRANSFER_TYPE_BINARY, 0);
DWORD error_two = GetLastError();

//Gestion des erreurs pour le transfert de fichier +
ecriture fichier de trace
if(result!=1)
{
strcpy(chaine,"Transfert du fichier ");
strcat(chaine,nom_fic);
strcat(chaine," impossible\n");
n=strlen(chaine);
nb=fwrite(chaine,sizeof( char ),n,trace);
printf("Transfert du fichier %s impossible\n",
nom_fic);
}
else
{
strcpy(chaine,"Fichier ");
strcat(chaine,nom_fic);
strcat(chaine," transféré avec succès\n");
n=strlen(chaine);
nb=fwrite(chaine,sizeof( char ),n,trace);
printf("\nFichier %s transfere\n", nom_fic);
}
}
result=InternetCloseHandle(hFileConnection);
}

// Close the FTP connection
InternetCloseHandle(hService);
}

// Close the Internet connection
InternetCloseHandle(hSession);

fclose(trace);
printf("\nFin du prog");
return 0;
}


Voici l'ordre des paramèttres que tu dois envoyer lors de l'appelle du
programme:
1) Adresse IP ou nom de la machine du serveur FTP
2) Login de la connexion
3) Mot de passe de la connexion
4) Chemin en local ( Exemple: c:\test\ )
5) Dossier a transférer se trouvant sur le serveur (il faut donner le nom
du dossier qui se trouve sur le serveur si tu veux le transférer)

ATTENTION: Le fichier de destination sur la machine local doit-être créé
avant de lancer le prog!!!

Voila, bon courage
MegaMickx



-------------------------------
Réponse au message :
-------------------------------

> bonjour à tous
> je dois dévelloper un petit exe qui s'identifie et envoie un fichier sur un serveur ftp avec des paramètres rentrer par l'utilisateur (user,pass,source,destination, et ip du serveur)
> pouvez vous m'indiquez si un tel projet a déjà été fait et ou je pourrais trouver des sources ou des exemple car la je nage dans le brouillard :)
>
> Merci d'avance

mercredi 19 novembre 2003 à 12:18:18 | Re : transfert FTP

demsy


Si tu pouvais commenter ton programme, ca me ferait plaisir

mardi 31 août 2004 à 00:35:26 | Re : transfert FTP

LordBob

Membre Club
bon je sais que ceci a été fait il y a un certain, mais je suis en train de developpez une application, qui a besoin de transféré un fichier sur un serveur ftp... mais je me pose une question, sur le fonction "InternetConnect" et plus precisement sur le second param !!!
en fait il faut marqué l'adresse IP de "l'adresse ftp", mais on peut vraiment pas mettre l'adresse texto?
si non, comment on fait pour recuperer cette adresse IP?
Bob...

"La chance accorde ses faveurs aux esprits avertis..."

mardi 31 août 2004 à 02:37:36 | Re : transfert FTP

LordBob

Membre Club
non c'est bon j'ai la reponse a ma question !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."



Cette discussion est classé dans : ftp, serveur, transfert


Répondre à ce message

Sujets en rapport avec ce message

FTP [ par David ] Recherche source pour realiser une connection FTP sur mon serveur pour effectuer le transfert de fichier dans les deux sens Local-->Serveur Serveur--> client/serveur FTP [ par fab ] Salut!!!Je développe un prog client/serveur FTP en C++ Builder . Je veux pouvoir envoyer un fichier image au serveur . Pour cela j'utilise le composan Transfert d'un ftp (2) [ par header ] Voila le problème :J'ai ouvert un fichier sur un ftp et je me prépare à lire quelques bytes de celui ci. Pourquoi ca marche trés bien avec un fichier serveur FTP et compression [ par despro007 ] Bonjour, je debute en peu en C++,mais dans le cadre d'un projet plus vaste (multi langage) je dois réaliser un serveur ftp compressant les données env Problème d'envoie par socket [ par CyberP ] J'ai fait un programme qui se connecte à un serveur ftp (le serveur ftp est aussi sur mon ordi). Je me connecte avec la fonction connect() et je recoi FTP Serveur : Taux de tranfert d'1 fichier [ par bergou ] Avec MFC : FTP serveurquelle est l'instruction qui me permet de connaitre le taux de transfert d'un fichier par rapport au modem ?MerciBergou CLIENT/SERVEUR FTP RFC [ par saywaki ] Bonjour a tous, Je souhaite developper un serveur et un client FTP en C qui soit a la norme RFC et 2 autres en plus d'ailleurs.Si vous avez des tutori serveur ftp securisé en langage C [ par manyky54 ] Je cherche une source en C d'un serveur FTP sécurisé et je cherche aussi comment utiliser des fenêtres graphiques en C sous linux.merci de vos réponse Transfert de fichier par ftp [ par schub1015 ] Comment faire ? Réalisation d'un serveur FTP [ par Ihsanovic ] Salut tt le monde,Je suis un étudiant en informatique, j'ai un tt ptit pblme, je dois réaliser un SERVEUR FTP qui gére les sessions des clients, le tr


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.