1. 程式人生 > >Libcurl庫使用傳送單個檔案及多個檔案demo

Libcurl庫使用傳送單個檔案及多個檔案demo

demo:

#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include <stdlib.h>

#define PERM 0
char * name = "curl.c";

int main()
{
  CURL *curl;
  CURLcode rcode;
  char *url = "192.168.1.100";
  char *head_t = "66666666";
  char heads[1024];
  struct curl_httppost *formpost=NULL;
  struct
curl_httppost *lastptr=NULL; struct curl_slist *headers=NULL; /* init to NULL is important */ sprintf(heads,"head-sky:%s",head_t); headers = curl_slist_append(headers, heads); rcode = curl_global_init(CURL_GLOBAL_NOTHING); if (CURLE_OK != rcode) goto err1; curl = curl_easy_init(); if
(NULL == curl) goto err2; #if PERM == 1 /*設定傳送單個檔案*/ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME,"sendfile", CURLFORM_FILE, name, CURLFORM_END); #else /*設定傳送多個檔案*/ struct curl_forms array[3]; array[0].option = CURLFORM_FILE; array[0].value = "curl.c"
; array[1].option = CURLFORM_FILE; array[1].value = "1.png"; array[2].option = CURLFORM_END; curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "sendfile", CURLFORM_ARRAY, array, CURLFORM_END); #endif curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "filename", CURLFORM_COPYCONTENTS, name, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "send", CURLFORM_END); //設定傳送http頭部 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); //設定url curl_easy_setopt(curl, CURLOPT_URL, url); //設定http以post方式請求 curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); //設定超時時間 curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L); //傳送資料 rcode = curl_easy_perform(curl); curl_formfree(formpost); curl_easy_cleanup(curl); curl_slist_free_all(headers); curl_global_cleanup(); return 0; err2: curl_global_cleanup(); err1: return; }

除錯時可使用網路除錯助手,建立一個tcp server端,使用80埠,接收http請求。
如此在除錯助手上即可看到傳送的檔案及頭部。

相關推薦

Libcurl使用傳送單個檔案檔案demo

demo: #include <stdio.h> #include <string.h> #include <curl/curl.h> #include <s

Struts2單個檔案檔案上傳

<一>簡述: Struts2的檔案上傳其實也是通過攔截器來實現的,只是該攔截器定義為預設攔截器了,所以不用自己去手工配置,<interceptor name=”fileUpload” class=”org.apache.struts2.interceptor.

AJAX+Servlet3.0實現非同步檔案上傳(單個檔案檔案上傳、帶檔案的表單提交)

   一、上傳單個檔案           1.JSP頁面程式碼       <%@ page language="java" contentType="text/html;

J2EE開發:struts2 檔案上傳(單個檔案檔案

<一>簡述: Struts2的檔案上傳其實也是通過攔截器來實現的,只是該攔截器定義為預設攔截器了,所以不用自己去手工配置,<interceptor name="fileU

input 選取資料夾檔案 識別內部檔案

input 選取資料夾 input 檔案的選取 <input type="file" class="upfile" multiple="multiple" /> 可以選取多個檔案 <input type="fi

博士問,如何分割一個大檔案檔案

參考:http://www.cnblogs.com/waynechen/archive/2010/07/26/1785097.html split -l 300 large_file.txt new_file_prefix 解決  (adsbygoogle = windo

利用itext將html檔案轉化pdf檔案(5)——檔案的合併

工作中經常會遇到將多個html檔案轉化為pdf,並且將pdf轉化之後的檔案進行合併。官方參考文件下面來介紹簡單的操作:import java.io.ByteArrayInputStream; import java.io.FileInputStream; import jav

mybatis3.1-[topic-18-20]-_對映檔案_引數處理_單個引數&引數&命名引數 _POJO&Map&TO 三種方式舉例

筆記要點出錯分析與總結 /**MyBatis_對映檔案_引數處理_單個引數&多個引數&命名引數 * _POJO&Map&TO 三種方式及舉例 _ * 單個引數 : #{引數名} ,取出引數值; [mybatis 不會做特殊處理]

將目錄子目錄下檔案內容合併

cat `find $PWD | xargs ls -ld |grep "^-" | awk -F " " '{print $9}'` >> merge.txt find $PWD:查詢當前目錄下所有的檔案與資料夾 xargs:將輸出的輸出的多行內容轉換成一行,也可使用

JMeter、Postman、Requests介面測試經驗分享-一個請求中傳送檔案

之前就已經有打算分享一篇關於使用Post請求傳送多個檔案的部落格;最近好好工作、天天打遊戲,也就耽誤許久。今天來分享下,這個上傳多個檔案的請求實際也是一種 一個引數傳多個值的情況; (一)POST請求-multipart/form-data 這篇分享:POST請求方法之content

C語言程式設計進階例程-2 一個程式,檔案

演示:建立多檔案的專案main.c#include <stdio.h> int max(int x,int y); int main( ) { int a,b,c; printf("輸入兩數:"); scanf("%d %d", &a, &b

【Maven jar】打包單個檔案,有依賴jar包的將架包一起打包成一個jar包供別的專案引用

之前有一片文章,是打包單個java檔案的。這次想要將http://www.cnblogs.com/sxdcgaq8080/p/8398780.html  打包成jar包,發現這個java檔案中引用了多個第三方的jar,想要單獨進行編譯都無法通過,更不要說打包成jar了。 所以就營運而生了這個需求,怎麼打包單

Linq 修改表中單個欄位的值欄位的值

一、修改單列的值 //這個方法是根據主鍵修改指定列的值。所以在傳值的時候WEBSITEBOOKSERVICE item=new WEBSITEBOOKSERVICE(); item.ID=20; item.ISAVAIL=1; public int UpdateAny(W

MFC對話方塊選擇檔案選擇資料夾

選擇多個檔案(這裡選擇多張圖片) void SelctFiles() { CFileDialog dlg(TRUE, _T("*.jpg"), NULL, OFN_ALLOWMULTISE

單個檔案上傳+檔案上傳

單個檔案上傳 jsp頁面 <body> <form action="shangchuan.do" method="post" enctype="multipart/form-data"> 檔案<

jspsmartupload元件實現單個檔案上傳(下)

///實現新增多個附件 <%@ page language="java" pageEncoding="GBK"%> <html> <head>  <title>struts upload by zhangc</titl

C語言基於socket的檔案傳輸(可迴圈傳送檔案)

基本簡介:本次檔案傳輸的實現主要是通過客戶端向伺服器傳送下載請求,然後在伺服器中找到對應的檔案並開啟檔案,再繼續向客戶端傳送檔案,而客戶端就在不停的接收。這是因為檔案可能比較大,一個緩衝陣列只能儲存一部分檔案內容,因此伺服器得不斷從檔案中讀取內容併發給客戶端,而客戶端得不停的

HttpClient傳送方實現上傳檔案

public static void upload(String url, List<String> filepaths,HashMap<String, String> mapParams) { HttpClient

easypoi導出單個sheet和sheet

簡單 取數據 logs 註解 ont log 導出 image 研究 今天有時間研究了一下easypoi,感覺使用了easypoi導出excel方便了很多,不用寫很多復雜的反射,只需要使用註解和一些工具類就可以實現常用的excel的導出,接下來介紹一下easypoi如何導出

圖片轉PDFPDF之間的合並

fim ati size ddt text tex 輸出 dpa cat public static void ConvertPicture2PDF(string jpgfile, string pdf) { try { var do