Загрузка большого файла с использованием libcurl C++

Подскажите что там написано три варианта

Я написал функцию для загрузки файлов с помощью libcurl Вот:

long RequestUploadFile(CkString Url,CkStringArray* filename,CkStringArray* filepaths) {
    CURL *curl;
    CURLcode res;

    char *url = (char*)Url.getString();

    struct curl_httppost *formpost = NULL;
    struct curl_httppost *lastptr = NULL;
    struct curl_slist *headerlist = NULL;
    static const char buf[] = "Expect:";
    curl_global_init(CURL_GLOBAL_ALL);

    for (int i = 0; i < filename->get_Length(); i++)
    {
        curl_formadd(&formpost,
            &lastptr,
            CURLFORM_COPYNAME, filename->getString(i),
            CURLFORM_FILE, filepaths->getString(i),
            CURLFORM_END);
    }

    curl_formadd(&formpost,
        &lastptr,
        CURLFORM_COPYNAME, "upload_type",
        CURLFORM_COPYCONTENTS, "files",
        CURLFORM_END);

    long http_code = 0;
    curl = curl_easy_init();
    headerlist = curl_slist_append(headerlist, buf);
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
        curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
        curl_easy_perform(curl);
        curl_easy_cleanup(curl);
        curl_formfree(formpost);
        curl_slist_free_all(headerlist);
    }
    Url.clear();
    filename->Clear();
    filepaths->Clear();
    return http_code;
}

Я использовал эту функцию в своем коде, как показано ниже, чтобы загрузить один файл:

CkStringArray filenames;
CkStringArray filepaths;

filenames.Append("file");
filepaths.Append("C:\\tss.bmp");

RequestUploadFile(RequestUrl, &filenames, &filepaths);

tss.bmp имеет размер 4 Мб (не загружен)

hello.txt имеет размер 2-3 КБ (успешно загружен)

В чем причина этого и как это можно решить?

0 ответов

Другие вопросы по тегам