Résultats de 1 à 4 sur 4

Sujet : code source serveur/client FTP

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    4

    code source serveur/client FTP

    Voilà je suis déséspérer et à la limite du suicide !J \'ai trouver un freeware avec ses sources, il sagit d\'un client FTP (ftp-it) qui permet d\'envoyer un fichier en un clik droit [...] il marche vraiment très très bien mais le seul probleme c\'est que l\'on peut envoyer un fichier uniquement 1 par 1 et moi j\'aimerai en envoyer autant que je veux en un coup. Je suis telment déspéré que je met la source:

    Code:
    #include <wininet.h>
    #include <windows.h>
    #define NameFileIni \"config.ini\" 
    
    void SendFileFtp (
        char* FileToSend,  				
        char* NameServeurFtp,
        char* LoginFtp,
        char* PwdFtp,
        char* DirFtp)
       
    { 	/* Les handles */
    	HINTERNET hInternetSession; 				/* handle to internet connection */
    	HINTERNET hFTPSession; 						/* handle to FTP session	*/
        bool ResultFtp;
     
    
    		/* Ouverture de la connexion */
    	hInternetSession = InternetOpen ( \"proutftp\" , INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
    	if ( hInternetSession == NULL )
    	{
    	    MessageBox ( NULL,\"Erreur lors de l\'ouverture de la connexion.\" , \"Ftp-It\", MB_OK);
    		exit;
    	
    	}
    	/* Connexion au serveur FTP */
    
    	hFTPSession = InternetConnect ( hInternetSession, NameServeurFtp, INTERNET_DEFAULT_FTP_PORT, LoginFtp, PwdFtp, INTERNET_SERVICE_FTP, 0, 0);
    	if ( !hFTPSession )
    	{
    	MessageBox ( NULL,\"Erreur lors de l\'ouverture du ftp.\" , \"Ftp-It\", MB_OK);
    		exit;
    	}
    	else
    	{/* Enregistrement des fichiers sur le serveur FTP */
    
    	
    	ResultFtp = FtpPutFile ( hFTPSession,FileToSend ,DirFtp, FTP_TRANSFER_TYPE_BINARY,0);
    	if ( !ResultFtp )
    	MessageBox ( NULL,\"Erreur lors de l\'envoi.\" , \"Ftp-It\", MB_OK) ; else MessageBox ( NULL,\"     Envoi réussi.      \" , \"Ftp-It\", MB_OK) ;;
    		
    			
    			
    		}
    		
    /* Fermeture de la connexion ftp */
    InternetCloseHandle ( hFTPSession );
    	
    /* Fermeture de la session */
    InternetCloseHandle ( hInternetSession );
    
    	
    	return;
    }
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = \"WindowsApp\";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
    //init des variables
        char DirNameFileIni[255]=\"\";				
        char NameServeurFtp[255]=\"\";
        char LoginFtp[50]=\"\";
        char PwdFtp[255]=\"\";
        char DirFtp[255]=\"\";
        char FileToSend[255]=\"\";
    	char DirFileTmp[255]=\"\";
    	char nom[255]=\"\";
    	char prout[255]=\"\";
    	// test du nombre de parmetres
    if (__argc==2 || __argc==3 ||__argc==6) {
     
     
    
    
    /* récuperation du nom du fichier à envoyer sans le path dans nom*/
    char* orig=__argv[1];
    int i=strlen(orig);
    int q=i;
    while (orig[q]!=\'\\\\\'){q--;}
    for (int p=0;(p+q)<i;p++){ nom[p]=orig[p+q+1];}
    if (__argc==6){
    strcpy(NameServeurFtp,__argv[1]); 
    strcpy(LoginFtp,__argv[2]);
    strcpy(PwdFtp,__argv[3]);
    strcpy(FileToSend,__argv[4]);
    strcpy(DirFtp,__argv[5]);
    }
    else //si on appelle juste avec le nom de fichier ou le nom + rep distant
    {
    /* récupération du path de l\'executable pour connaitre l\'emplacement du fichier ini
    dans path
    */
    orig=__argv[0];
    i=strlen(orig);
    q=i;
    while (orig[q]!=\'\\\\\'){q--;}
    for (int r=0;r<=q;r++) {DirNameFileIni[r]=orig[r];}
    
    strcat ( DirNameFileIni,NameFileIni );
    
    // Récupération des params dans le ini
    	GetPrivateProfileString ( \"FTP\" , \"NAME_SERVEUR_FTP\" , \"\" , NameServeurFtp , 255 , DirNameFileIni );
    	GetPrivateProfileString ( \"FTP\" , \"LOGIN_FTP\" , \"\" , LoginFtp , 255 , DirNameFileIni );
    	GetPrivateProfileString ( \"FTP\" , \"PWD_FTP\" , \"\" , PwdFtp , 255, DirNameFileIni );
    //	
    // si pas de repertoire spécifié par l\'utilisateur on va le chercher dans l\'ini
    if (__argc==2) GetPrivateProfileString ( \"FTP\" , \"DIR_FTP\" , \"\" , DirFtp , 255 , DirNameFileIni );
    //sinon on prend celui spécifié par l\'utilisateur
    else  strcpy(DirFtp,__argv[2]);
    
    strcpy(FileToSend,__argv[1]); // le fichier à envoyer est le er parametre
    	}
    // concatenation du repertoire distant et du nom de fichier	
    
    strcpy(prout,DirFtp);
    strcat(prout,nom);
    
    //envoi du fichier	
    SendFileFtp(FileToSend,  				
        NameServeurFtp,
        LoginFtp,
         PwdFtp,
         prout);
    
    }
    	else  MessageBox ( NULL,\"Erreur de parametres.\" , \"Ftp-It\", MB_OK);
    
    }
    Voilà, je n\'y connais vraiment rien mais j\'aimerai vraiment avoir la possibilitée d\'envoyer plusieur fichier. Ce programme est très important pour moi, si quelqu\'un peut m\'aider ops:

    Merci

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    pourquoi ne fais tu pas une boucle ( for par exemple ) sur ta fonction SendFileFtp, comme ça tu envoie autant de fichier que tu veux ....
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    4
    Bah enfaite je n\'y connai strictement rien, pourait tu m\'indiquer (copier/coller) l\'endroit ou je doit le faire ?

    Merci

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Si tu veux progresser commence par comprendre le code que tu copies, sinon ce n\'est pas la peine : tu auras un programme qui marche mais ça ne t\'apporteras rien

    Donc, relis le code et maîtrises-le, après quoi tu comprendras sûrement ce que Admin a voulu t\'expliquer.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé