關於C++使用libcurl提交表單方式上傳檔案時提交表單引數[同HTML表單]
C++與Java後臺互動,避免不了使用HTTP協議,這時候對於C++來說libcurl就派上用場了,簡單的引數傳遞比較簡單,涉及到檔案上傳和下載的時候就稍微複雜點了,具體示例如下:
int http_post_file(const char *url, const char *user, const char *pwd, const char *filename)
{
assert(url != NULL);
assert(user != NULL);
assert(pwd != NULL);
assert(filename != NULL);
int ret = -1;
CURL *curl = NULL;
CURLcode code;
CURLFORMcode formCode;
int timeout = 15;
#define CHECK_FORM_ERROR(x) /
if ((formCode = (x)) != CURL_FORMADD_OK) /
{ /
fprintf(stderr, "curl_formadd[%d] error./n", formCode); /
goto out; /
}
#define CHECK_SETOPT_ERROR(x) /
if ((code = (x)) != CURLE_OK) /
{ /
fprintf(stderr, "curl_easy_setopt[%d] error./n", code); /
goto all; /
}
struct curl_httppost *post=NULL;
struct curl_httppost *last=NULL;
struct curl_slist *headerlist=NULL;
CHECK_FORM_ERROR( curl_formadd(&post, &last, CURLFORM_COPYNAME, "user",
CURLFORM_COPYCONTENTS, user,
CURLFORM_END));
CHECK_FORM_ERROR( curl_formadd(&post, &last, CURLFORM_COPYNAME, "password",
CURLFORM_COPYCONTENTS, pwd,
CURLFORM_END));
CHECK_FORM_ERROR( curl_formadd(&post, &last, CURLFORM_COPYNAME, "file",
CURLFORM_FILE, filename,
CURLFORM_END));
CHECK_FORM_ERROR( curl_formadd(&post, &last,
CURLFORM_COPYNAME, "submit",
CURLFORM_COPYCONTENTS, "upload",
CURLFORM_END));
curl = curl_easy_init();
if(curl == NULL)
{
fprintf(stderr, "curl_easy_init() error./n");
goto out;
}
CHECK_SETOPT_ERROR(curl_easy_setopt(curl, CURLOPT_HEADER, 0));
CHECK_SETOPT_ERROR(curl_easy_setopt(curl, CURLOPT_URL, url));
CHECK_SETOPT_ERROR(curl_easy_setopt(curl, CURLOPT_HTTPPOST, post));
CHECK_SETOPT_ERROR(curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout));
code = curl_easy_perform(curl);
if(code != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform[%d] error./n", code);
goto all;
}
ret = 0;
all:
curl_easy_cleanup(curl);
out:
curl_formfree(post);
return ret;
}
相關推薦
關於C++使用libcurl提交表單方式上傳檔案時提交表單引數[同HTML表單]
C++與Java後臺互動,避免不了使用HTTP協議,這時候對於C++來說libcurl就派上用場了,簡單的引數傳遞比較簡單,涉及到檔案上傳和下載的時候就稍微複雜點了,具體示例如下: int http_post_file(const char *url, c
JS 將form表單與上傳檔案 一起提交
前提 需要引入jquery(不然無法使用$.ajax) //js function add(){ var formData = new FormData(document.querySelector("form"));//獲取form值
c# 模擬表單提交,post form 上傳檔案、大資料內容
表單提交協議規定: 要先將 HTTP 要求的 Content-Type 設為 multipart/form-data,而且要設定一個 boundary 引數, 這個引數是由應用程式自行產生,它會用來識別每一份資料的邊界 (boundary), 用以產生多重資訊部份 (me
form表單提交資料的同時上傳檔案程式碼示例
form表單提交資料的同時在表單中上傳檔案程式碼示例 一
使用form表單同時實現上傳檔案和提交文字資料
使用form表單同時實現上傳檔案和提交文字資料,此示例中在後臺將檔案上傳到阿里的oss儲存伺服器中 申請oss相關賬號: endpoint = "http://oss-cn-qingdao.aliyuncs.com"; accessKeyId = "key"; accessKeySecret = "secr
用form表單input type="file"上傳檔案(提交前判斷)
1、用/jquery.form.js上傳檔案,提交前判斷是否選擇了檔案(之前很糾結判斷問題,寫在beforeSend裡面不管什麼情況都會提交) 2、用ajax接收資訊 3、優化提交按鈕樣式 HTML頁面程式碼: <script src="/JS/jquery.fo
H5用FormData物件提交表單及上傳檔案
1、如何使用 use multipart/form-data when your form includes any <input type="file"> elements. 2、怎麼
CURL模擬表單post提交及相關常用引數的使用(包括提交表單同時上傳檔案)
<form action="doLogin" method="post"> <input type="text" name="username" value="admin"/> <input type="password" nam
ajax非同步上傳檔案,ajax提交表單中的檔案到後臺解析
原生ajax是不能提交檔案的,因為ajax與後臺的通訊是通過字串的. 那麼如何實現呢? 本文需要使用jquery.form.js同時,還需要引用jquery.js 以上傳excel到後臺並解析為例: 首先看一下表單的書寫. 例如: <for
Jquery不使用form表單非同步上傳檔案的方法
現在的專案中需要使用到不重新整理頁面的方式實現上傳檔案,實現方法如下: html程式碼: 檔案:<input id="file" type="file" name="file"/> <butt
使用HTML的表單form上傳檔案,需要考慮的幾個問題
應用系統中經常需要有檔案上傳功能,一般的做法都是使用HTML的<form>和<input type="file">,或者使用第三方檔案上傳元件,如swfupload和uploa
非同步上傳檔案使用new FormData($(‘#uploadForm‘)[0])序列化表單
/// <summary>/// 上傳新圖片,(包含檔案上傳) /// </summary>/// <returns></returns>public JsonResult UpLoad() {
nodejs 處理表單上傳檔案時,獲取不到表單資料
from表單上傳檔案時,為保證檔案正確的編碼格式,我們會為form設定 enctype="multipart/form-data" 屬性,但此時我們又不能獲取到input傳遞的值。 表單中enctyp
xUtils上傳檔案使用表單的方式上傳檔案。
專案中需要進行上傳多張圖片,比如說,發表文章的時候最多可以上傳9張圖片。 List<File> filelist = new ArrayList<File>(); for (int i = 0; i < filePath.length; i+
前端 - jquery方式 / iframe +form 方式 上傳檔案
環境與上一章一樣 jquery 方式上傳檔案: HTML程式碼 {#html程式碼開始#} <input type="file" id="img" > <button onclick="a1()">提交</button> {#
H5 通過Ajax方式上傳檔案 使用FormData進行Ajax請求
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
AJAX POST方式上傳檔案到後臺和下載後臺傳來的檔案
ajax 下載 原本ajax是不能下載檔案的,原因:因為response,一般請求瀏覽器是會處理伺服器輸出的response,例如生成png、檔案下載等,然而ajax請求只是個“字元型”的請求,即請求的內容是以文字型別存放的。檔案的下載是以二進位制形式進行的,雖然可以讀取到返
C#為例,分塊上傳檔案
前臺: <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>&
通過Django的form及Ajax等多種方式上傳檔案
如下效果: 方式一、通過Django的Form方式上傳檔案 思路:前臺html建立Form,根據格式要求完善form內標籤屬性;提交後臺後,後臺獲取前臺傳來的資料進行處理:檔案路徑儲存至資料庫,檔案內容儲存至本地資料夾中;後臺處理完成後重新整理前臺頁面。 1
使用表單在springMVC的後臺上傳檔案時遇到500錯誤:The current request is not a multipart request
一、我出現錯誤的原因 是在前端的表單屬性裡沒有加入這一屬性enctype="multipart/form-data",然後繼續執行Tomcat, 上傳還是報一樣的錯誤,繼續認真觀看,發現我使用表單的預設提交方式,所以把提交方式改為method="post", 再次執行T