天天看點

libcurl上傳檔案,添加自定義頭

libcurl參數很多,一不小心就容易遇到問題。曾經就遇到過一個很蛋疼的問題:libcurl斷點下載下傳>>

這裡主要彙總一下,libcurl上傳的二種方式:

1、直接上傳檔案,類似form表單<input type=”file” />,<form enctype=”multipart/form-data”…;

2、上傳二進制流;

至于設定自定義頭,都是使用一樣的方法

<a href="http://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html" target="_blank">前往官網檢視CURLOPT_HTTPHEADER&gt;&gt;</a>

直接上傳檔案:

二進制流上傳:

上面的參數均不可預設,如果預設結果可能不太符合預期。其中Content-Type預設為“application/octet-stream”

libcurl上傳檔案,添加自定義頭

CURLFORM_COPYNAME為上傳的字段名,如上圖所示(name之後)

CURLFORM_BUFFER  在沒有使用CURLFORM_FILE上傳自定義檔案時使用,它用來告訴libcurl檔案内容已經在緩存中了,在内容的頭資訊中它提供了filename字段。我之前沒加這個參數發現一直上傳不成功- -

*** 還有一個地方要注意的是:CURLFORM_BUFFERLENGTH它的類型必須為long

參考連結:

<a href="http://curl.haxx.se/libcurl/c/curl_formadd.html">http://curl.haxx.se/libcurl/c/curl_formadd.html</a>

<a href="http://curl.haxx.se/libcurl/c/libcurl-tutorial.html">http://curl.haxx.se/libcurl/c/libcurl-tutorial.html</a>

<a href="http://curl.haxx.se/libcurl/c/postit2.html">http://curl.haxx.se/libcurl/c/postit2.html</a>

<a href="http://stackoverflow.com/questions/14685196/c-libcurl-force-content-type">http://stackoverflow.com/questions/14685196/c-libcurl-force-content-type</a>

<a href="http://zengrong.net/post/2088.htm">http://zengrong.net/post/2088.htm</a>

<a href="http://stackoverflow.com/questions/25370991/libcurl-buffered-file-upload-not-working">http://stackoverflow.com/questions/25370991/libcurl-buffered-file-upload-not-working</a>

<a href="http://www.cnblogs.com/cswuyg/p/3185164.html" target="_blank">通過HTTP協定上傳檔案</a>

<a href="http://www.blogbus.com/gcoder-logs/191913436.html" target="_blank">使用libcurl POST資料和上傳檔案</a>

繼續閱讀