首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

ftp文件上传,该怎么处理

2013-10-30 
ftp文件上传哪位有ftp上传的例子,不要mfc的 就要win32 api的,我在网上看说ftp微软上传文件FtpPutFile是个b

ftp文件上传
哪位有ftp上传的例子,不要mfc的 就要win32 api的,我在网上看说ftp微软上传文件FtpPutFile是个bug,是什么bug啊,有人说需要先open 然后写。哪位神给写个demo,谢谢
[解决办法]


static size_t
write_response(void *ptr, size_t size, size_t nmemb, void *data)
{
  FILE *writehere = (FILE *)data;
  return fwrite(ptr, size, nmemb, writehere);
}
 
int main(void)
{
  CURL *curl;
  CURLcode res;
  FILE *ftpfile;
  FILE *respfile;
 
  /* local file name to store the file as */ 
  ftpfile = fopen("ftp-list", "wb"); /* b is binary, needed on win32 */ 
 
  /* local file name to store the FTP server's response lines in */ 
  respfile = fopen("ftp-responses", "wb"); /* b is binary, needed on win32 */ 
 
  curl = curl_easy_init();
  if(curl) {
    /* Get a file listing from sunet */ 
    curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/");
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, ftpfile);
    
    curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, write_response);
    curl_easy_setopt(curl, CURLOPT_WRITEHEADER, respfile);
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));
 
    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
 
  fclose(ftpfile); /* close the local file */ 
  fclose(respfile); /* close the response file */ 
 
  return 0;
}

热点排行