Téléchargement fichier ini

Signaler
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005
-
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006
-
Salut à tous,

Une fois de plus, je mendi votre aide

On me demande de télécharger un fichier ini, en fait de faire un upload exactement, si quelqu'un pouvait me venir en aide, car la je suis vraiment larguée

Biz...!

7 réponses

Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

tu peux etre plus precis. Que veux tu telecharger pourquoi et qu'est ce qui te pose pb
A plus
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005

En fait je veux charger un fichier .ini d'un poste client vers le serveur, et comme je n'ai jamais fait d'upload je panique un peu.
En fait, il me faudrait voir un exemple concret de programme en C sous Linux d'un upload


Biz...!
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Voila un exemple

//---------------------------------------------------------------------------
// Fonction pour télécharger des fichiers sur un FTP
// Cette fonction permet de uploader une liste de fichiers sur un FTP
// une fois uploadé le fichier source en local est supprimé
// Accepte autant de fichiers que necessaire en argument
void fUL_FTP( unsigned short f_Nb_Arg , // Nombre de fichier à télécharger
char f_Arg_Server [ 256 ] , // DNS ou IP du serveur ou récupérer les fichiers
char f_Arg_User [ 256 ] , // Nom d'utilisateur pour le FTP
char f_Arg_Pass [ 256 ] , // Mot de passe
char f_Arg_Source [ 256 ] , // Répertoire ou les fichiers sont stockés en local
char f_Arg_Destination [ 256 ] , // Répertoire ou copier les fichiers sur le FTP
... ) // Listes des fichiers à récuperer
{
// Initialisation des macros pour la gestion du nombre variable de fichier
va_list f_Arg_Fichier ; // Définition du pointeur
va_start ( f_Arg_Fichier , f_Arg_Destination ) ; // Initialisation du pointeur sur le premier des arguments


// Déclaration des variables locales
unsigned short f_i ;
char f_Fichier [ 256 ] , f_Source [ 256 ] , f_Destination [ 256 ] , f_Msg_Log [ 1024 ];


// Les handles
HINTERNET f_hInternetConnexion ; // Handle de la connexion internet
HINTERNET f_hFTPSession ; // Handle de la session FTP


// Ouverture de la connexion internet
f_hInternetConnexion = InternetOpen ( "Seb" , INTERNET_OPEN_TYPE_DIRECT , NULL , NULL , 0 ) ;
// Test si l'operation a reussie et log si l'opération échoue
if ( f_hInternetConnexion == NULL )
{ if ( f_Log_Dl_HTTP == 0 )
{
fError_Msg ( GetLastError (), "fUL_FTP : erreur lors de l'initialisation de la connexion internet\n\n\n" ) ;
}
InternetCloseHandle ( f_hInternetConnexion ) ;
return ;
}


// Ouverture de la session FTP
f_hFTPSession = InternetConnect ( f_hInternetConnexion ,
f_Arg_Server , // Nom du serveur FTP
INTERNET_DEFAULT_FTP_PORT , // Port à utiliser
f_Arg_User , // Nom d'utilisateur
f_Arg_Pass , // Mot de passe
INTERNET_SERVICE_FTP ,
NULL ,
NULL ) ;
// Test si la conenxion au server a rèussie et log si l'opération échoue
if ( ! f_hFTPSession )
{ // Appel de la fonction pour loguer l'erreur ds le fichier log.log
sprintf ( f_Msg_Log , "fUP_FTP : erreur lors de la connexion au server FTP %s\n\n\n" , f_Arg_Server ) ;
fError_Msg ( GetLastError (), f_Msg_Log ) ;
InternetCloseHandle ( f_hFTPSession ) ;
InternetCloseHandle ( f_hInternetConnexion ) ;
return ;
}


// Téléchargement des fichiers
for ( f_i = 1 ; f_i <= f_Nb_Arg ; f_i ++ )
{
strcpy ( f_Source , f_Arg_Source ) ; strcpy ( f_Destination , f_Arg_Destination ) ; strcpy ( f_Fichier , va_arg ( f_Arg_Fichier, char * ) ) ;
strcat ( f_Source , f_Fichier ) ; strcat ( f_Destination , f_Fichier ) ;


// Supression des fichiers avant écriture
// Test si l'operation a reussie et log si l'opération échoue
if ( ! FtpDeleteFile( f_hFTPSession , f_Destination ) )
{
if ( f_Log_Dl_HTTP == 0 )
{
// Appel de la fonction pour loguer l'erreur ds le fichier log.log
sprintf ( f_Msg_Log , "fUP_FTP : Echec de supression du fichier %s de %s vers %s%s" , f_Fichier , f_Source , f_Arg_Server , f_Destination ) ;
fError_Msg ( GetLastError (), f_Msg_Log) ;
InternetCloseHandle ( f_hFTPSession ) ;
InternetCloseHandle ( f_hInternetConnexion ) ;
return ;
}
}


// Ecriture des fichiers sur le FTP
// Test si l'operation a reussie et log si l'opération échoue
if ( ! FtpPutFile( f_hFTPSession , f_Source , f_Destination , FTP_TRANSFER_TYPE_BINARY , NULL ) )
{
if ( f_Log_Dl_HTTP == 0 )
{
sprintf (f_Msg_Log , "fUP_FTP : Echec d'ecriture du fichier %s de %s vers %s" , f_Fichier , f_Source , f_Destination );
fError_Msg ( GetLastError (), f_Msg_Log) ;
}
}
else
{
DeleteFile ( f_Source ) ;
}
}


// Fermeture des connexions
InternetCloseHandle ( f_hFTPSession ) ;
InternetCloseHandle ( f_hInternetConnexion ) ;


} ;
//---------------------------------------------------------------------------

tout le code est present ici : http://www.cppfrance.com/code.aspx?ID=25769

Bon courrage.
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Oulalalala pas la peine d'aller aussi loin lol !!!

Si c'est sur un réseau local, et que tu possèdes des droits d'écriture, tu n'as rien de plus a faire qu'à utiliser les fonctions de copie de fichier de la SDL.

Sinon si c'est sur un serveur distant (web par exemple), sur unix sert toi des sockets.
Sans oublier qu'il doit deja existé des classes gérant ca sous Linux.

Shell
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Surtout que Trinity_vv demande un code sous Linux alors que ton code yserver c'est du Win32 ...

Kaid - kaid.fr.st
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005

Merci beaucoup DeAtHCrAsH ,

toi qui à l'air de t'y connaître t'aurais pas un exemple concret sous la main (si ça ne te déranges pas trop).

Encore merci.


Biz...!
Messages postés
203
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Oups oui pardon.
Je suis resté sur ma première idée sans faire attention qu'il s'agissait de linux.
Dsl.

Bon courrage.