我正在使用libcurl傳輸帶有FTP的二進制文件(.exe),並將其保存到本地文件中。問題是,文件傳輸後,它被更改,不再是有效的Win32應用程序,並且不會運行。以下是我的工作方式:傳輸後損壞的二進制文件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);
該文件被寫入,但比FTP服務器上的文件大。就像我說的,試圖運行它會導致「%1不是有效的Win32應用程序」錯誤。我忘了設置一個選項或什麼?
哇,謝謝。這是答案。 – Nilbert 2010-08-05 05:57:49