, поэтому я понял, как получить удаленный файл с размером файла через Интернет с помощью следующего кода:
size_t readHeader(char* header, size_t size, size_t nitems, void *userdata) {
// this works I get the file size when Content-length is available
if (startsWith(header, "Content-Length:")) {
std::string header_in_string = replaceAll(header, "Content-Length:", "");
long size = atol(header_in_string.c_str());
*file_size = size;
}
else { // do something else }
return size * nitems;
}
// main function
if (curl) {
fp = fopen(temp_file_name, "wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_CAINFO, "./ca-bundle.crt");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
curl_easy_setopt(curl, CURLOPT_HEADERDATA, this);
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, readHeader);
// writing the downloading content to file
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
Это обеспечивает решение в C # с помощью GET Получение удаленного размера файлабез content-length , и это также обеспечивает решение в php https://www.perlmonks.org/?node_id=641735, но я хочу знать решение в C ++ или Java или Python, предпочтительно с libcurl.
по этой ссылке я получаюреальный размер файла https://stackoverflow.com/questions/ask?wizard=1, но http://ag.teamdna.de/files/advancedgenetics-1.4.3-1.6.jar обеспечивает 0 или -1