Untitled
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; }