{"id":4712,"date":"2022-02-09T10:24:44","date_gmt":"2022-02-09T01:24:44","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=4712"},"modified":"2022-02-18T18:43:00","modified_gmt":"2022-02-18T09:43:00","slug":"libcurl-file-upload","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=4712","title":{"rendered":"libcurl file upload"},"content":{"rendered":"<h1>libcurl file upload<\/h1>\n<p><a href=\"https:\/\/curl.se\/libcurl\/c\/fileupload.html\">\ucc38\uc870<\/a><\/p>\n<p>. . . . . . . . . . . . . . . . . . . . . . . . . . .<br \/>\n. . . . . . . . . . . . . . . . . . . . . . . . . . .<br \/>\n. . . . . . . . . . . . . . . . . . . . . . . . . . .<\/p>\n<h2>source<\/h2>\n<pre><code class=\"language-cpp\">const char *file = &quot;filename.txt&quot;;\nstring url = safe_strcat(SERVER_URL, &quot;\/upload&quot;);\n\ncurl_mime *form = NULL;\ncurl_mimepart *field = NULL;\n\nCURL *curl;\nCURLcode res;\ncurl = curl_easy_init();\n\nchar buf[BUFSIZE];\nif(curl) {\n    form = curl_mime_init(curl);\n\n    \/\/ FIELD\n    field = curl_mime_addpart(form);\n    curl_mime_name(field, &quot;rawfile&quot;);\n    curl_mime_filedata(field, file);\n\n    field = curl_mime_addpart(form);\n    curl_mime_name(field, &quot;idx&quot;);\n    curl_mime_data(field, &quot;1&quot;, CURL_ZERO_TERMINATED);\n\n    \/\/ URL\n    curl_easy_setopt(curl, CURLOPT_URL, url.c_str());\n\n    \/\/ HEADERS\n    snprintf(buf, BUFSIZE, &quot;Authorization: Bearer %s&quot;, token);\n    struct curl_slist *list = NULL;\n    list = curl_slist_append(list, &quot;accept: *\/*&quot;);\n\n    list = curl_slist_append(list, buf);\n    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);\n\n    \/\/ METHOD\n    curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);\n\n    \/\/ SSL\n    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);\n    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1L);\n\n    \/\/ CALLBACK\n    \/\/ \uc608\uc81c : https:\/\/curl.se\/libcurl\/c\/getinmemory.html\n    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_memory_callback);\n    curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &amp;chunk);\n\n    res = curl_easy_perform(curl);\n\n    curl_slist_free_all(list);\n\n    if (res != CURLE_OK) {\n        curl_easy_cleanup(curl);\n        return -1;\n    }\n\n    curl_mime_free(form);\n    curl_easy_cleanup(curl);\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>libcurl file upload \ucc38\uc870 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=4712\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4712","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4712"}],"version-history":[{"count":3,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4712\/revisions"}],"predecessor-version":[{"id":4745,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4712\/revisions\/4745"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}