使用 libcurl C++ 将文件下载到 Ubuntu,简单示例不起作用
Downloading a file to Ubuntu with libcurl C++, simple example doesn't work
我正在尝试使用带有 C++ 的 libcurl 将单个图像文件下载到我的 Ubuntu 机器。
我尝试复制并粘贴这个问题中显示的简单示例:Download file using libcurl in C/C++
#include <stdio.h>
#include <curl/curl.h>
#include <string>
using namespace std;
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
CURLcode res;
const char *url = "https://i.imgur.com/mWj0yzI.jpg";
char outfilename[FILENAME_MAX] = "/home/my_username/test.jpg";
curl = curl_easy_init();
if (curl)
{
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
我希望它能下载图像文件并将其另存为 "test.jpg" 在我的机器上。但是,当我 运行 这个程序时, "test.jpg" 是 0 字节大小。显然由于某种原因图像没有写入文件。
我做错了什么?
您的 link 没有指向现有文件。使用正确的 link 它对我有用。试试这个:
const char *url = "https://i.imgur.com/oRtvmGT.jpg";
我正在尝试使用带有 C++ 的 libcurl 将单个图像文件下载到我的 Ubuntu 机器。
我尝试复制并粘贴这个问题中显示的简单示例:Download file using libcurl in C/C++
#include <stdio.h>
#include <curl/curl.h>
#include <string>
using namespace std;
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
CURLcode res;
const char *url = "https://i.imgur.com/mWj0yzI.jpg";
char outfilename[FILENAME_MAX] = "/home/my_username/test.jpg";
curl = curl_easy_init();
if (curl)
{
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
我希望它能下载图像文件并将其另存为 "test.jpg" 在我的机器上。但是,当我 运行 这个程序时, "test.jpg" 是 0 字节大小。显然由于某种原因图像没有写入文件。
我做错了什么?
您的 link 没有指向现有文件。使用正确的 link 它对我有用。试试这个:
const char *url = "https://i.imgur.com/oRtvmGT.jpg";