从文件中下载文件://在c ++中以libcurl为前缀

时间:2017-07-11 01:48:24

标签: c++ linux file libcurl

我被要求提供我的图书馆管理c ++项目,只能通过 file:// 包含的网址访问图书馆文件... 我使用Libcurl是因为我在搜索时使用了相同的标签词。

是通过Libcurl下载文件(因为它说兼容),这是一种正确的方法吗?

  

命令行工具和库   用URL传输数据   支持...   DICT,文件,...

libcurl代码是

#include <curl/curl.h>
int downloadTO(const void* downloadURL, const void* OUTPUT_FILE_NAME)
{
CURL *curl_handle;
static const char *pagefilename = (char*)OUTPUT_FILE_NAME;
FILE *pagefile;

curl_global_init(CURL_GLOBAL_ALL);

/* init the curl session */
curl_handle = curl_easy_init();

/* set URL to get here */
curl_easy_setopt(curl_handle, CURLOPT_URL, (char*)downloadURL);

/* Switch on full protocol/debug output while testing */
curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L);

/* disable progress meter, set to 0L to enable and disable debug output */
curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);

/* send all data to this function  */
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);

/* open the file */
pagefile = fopen(pagefilename, "wb");
if(pagefile)
{

    /* write the page body to this file handle */
    curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, pagefile);

    /* get it! */
    curl_easy_perform(curl_handle);

    /* close the header file */
    fclose(pagefile);
}

/* cleanup curl stuff */
curl_easy_cleanup(curl_handle);

return 0;
}

我是否也可以通过其 file:// 前置URL与套接字访问该文件?

0 个答案:

没有答案