Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.1 kB
3
Indexable
Never
#include <iostream>
#include <curl/curl.h>

size_t writeCallback(char* data, size_t size, size_t nmemb, std::string* output) {
    size_t totalSize = size * nmemb;
    output->append(data, totalSize);
    return totalSize;
}

int main() {
    CURL* curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();
    if (curl) {
        // Webhook URL'sini belirtin
        const char* webhookUrl = "<webhook_url>";

        // Dosya yolu
        const char* filePath = "/path/to/file.txt";

        // Dosyayı açın
        FILE* file = fopen(filePath, "rb");
        if (!file) {
            std::cerr << "Failed to open file: " << filePath << std::endl;
            return 1;
        }

        // Dosya boyutunu alın
        fseek(file, 0, SEEK_END);
        long fileSize = ftell(file);
        rewind(file);

        // Dosya verisini bellekte depolamak için bir buffer oluşturun
        char* buffer = new char[fileSize];

        // Dosyayı buffer'a okuyun
        size_t bytesRead = fread(buffer, 1, fileSize, file);

        // Dosyayı kapatın
        fclose(file);

        // Dosya gönderme işlemi için multipart/form-data olarak ayarlayın
        struct curl_httppost* formpost = nullptr;
        struct curl_httppost* lastptr = nullptr;
        curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "file", CURLFORM_BUFFER, filePath, CURLFORM_BUFFERPTR, buffer, CURLFORM_BUFFERLENGTH, bytesRead, CURLFORM_END);

        // CURL yapılandırması
        curl_easy_setopt(curl, CURLOPT_URL, webhookUrl);
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);

        // İstek gönderin
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;

        // CURL örneğini temizleyin
        curl_easy_cleanup(curl);

        // form verilerini temizleyin
        curl_formfree(formpost);

        // Belleği serbest bırakın
        delete[] buffer;
    }

    curl_global_cleanup();

    return 0;
}