Je transfère un fichier binaire (.exe) avec FTP en utilisant libcurl, et l'enregistre dans un fichier local. Le problème est qu'après le transfert du fichier, il est modifié et n'est plus une application Win32 valide, et ne fonctionne pas. Voici comment je le fais:Fichiers binaires corrompus après transfert libcurl
CURL *curl;
curl = curl_easy_init();
FILE* f = fopen("C:\\blah.exe", "w");
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.mysite.com");
curl_easy_setopt(curl, CURLOPT_USERPWD, "blah:blah");
curl_easy_setopt(curl, CURLOPT_FTP_FILEMETHOD, CURLFTPMETHOD_SINGLECWD);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &f);
} else {
fclose(f);
return CURL_EASY_INIT_FAIL;
}
fclose(f);
Le fichier est écrit mais il est plus grand que sur le serveur FTP. Comme je l'ai dit, essayer de l'exécuter entraîne l'erreur "% 1 n'est pas une application Win32 valide". Ai-je oublié de définir une option ou quelque chose?
WOW MERCI. C'est la réponse. – Nilbert