Guest User

Untitled

a guest
Jul 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <curl/curl.h>
  3. #include <string>
  4. #include <fstream>
  5. #include <sstream>
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. static const char expectHeader[] = "Expect:";
  10. //static const char jsonHeader[] = "Content-Type:application/json;charset=UTF-8";
  11.  
  12. static size_t OnWriteData(void* buffer, size_t size, size_t nmemb, void* lpVoid)
  13. {
  14. std::string* str = dynamic_cast<std::string*>((std::string *)lpVoid);
  15. if (NULL == str || NULL == buffer) {
  16. return -1;
  17. }
  18.  
  19. char* pData = (char*)buffer;
  20. str->append(pData, size * nmemb);
  21. return nmemb;
  22. }
  23.  
  24.  
  25. int main(){
  26. ifstream t("./pic/2.jpg"); //reading image from folder "pic"
  27. stringstream buffer;
  28. buffer << t.rdbuf();
  29. string contents(buffer.str());
  30. t.close();
  31. cout << "content size:" << contents.size() << endl;
  32.  
  33. //CURL* pCurl;
  34. curl_global_init(CURL_GLOBAL_ALL);
  35. int ret = 0;
  36. string url = "10.5.9.203/website/WebFrontend/index.php";
  37.  
  38. struct curl_httppost *post = NULL;
  39. struct curl_httppost *last = NULL;
  40. //struct curl_slist *headers =NULL;
  41.  
  42. string strResponse;
  43.  
  44. curl_formadd(
  45. &post, &last, CURLFORM_COPYNAME, "pic",
  46. CURLFORM_BUFFER, "2.jpg",
  47. CURLFORM_BUFFERPTR, contents.c_str(),
  48. CURLFORM_BUFFERLENGTH, contents.size(),
  49. CURLFORM_CONTENTTYPE, "multipart/form-data", CURLFORM_END);
  50.  
  51.  
  52.  
  53. struct curl_slist *plist = NULL;
  54. plist = curl_slist_append(plist, expectHeader);
  55. if(NULL == plist)
  56. {
  57. cout << "error curl_slist_append";
  58. return false;
  59. }
  60.  
  61. CURL *curl;
  62. curl = curl_easy_init();
  63. curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
  64. curl_easy_setopt(curl, CURLOPT_HEADER, 0);
  65. curl_easy_setopt(curl, CURLOPT_HTTPHEADER, plist);
  66. curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
  67. curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);
  68. curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, OnWriteData);
  69. curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);
  70. curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
  71. curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, 1000);
  72. curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, 1000);
  73.  
  74. char errbuf[CURL_ERROR_SIZE];
  75. errbuf[0] = '';
  76. curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
  77.  
  78. CURLcode errCode = curl_easy_perform(curl);
  79. if(errCode != CURLE_OK)
  80. {
  81. ret = false;
  82. cout << "Verify curl_easy_perform() failed: "
  83. << curl_easy_strerror(errCode);
  84.  
  85. cout << "url : "
  86. << url.c_str();
  87.  
  88. }
  89. curl_easy_cleanup(curl);
  90. curl_formfree(post);
  91. curl_slist_free_all(plist);
  92.  
  93. }
  94.  
  95. <?php
  96. if(isset($_POST["key"])){ //if the user has logged in
  97. echo "receive";
  98. echo "done";
  99. return;
  100. }
  101. if(isset($_POST["pic"])){ //if the user has logged in
  102. echo "receive";
  103. return;
  104. }
  105. if (isset($_FILES["pic"])){
  106. echo "receiven";
  107. print_r($_FILES);
  108. return;
  109. }
  110.  
  111. if (isset($GLOBALS)){
  112. echo "received";
  113. }
  114.  
  115. if(isset($_POST["name"])){ //if the user has logged in
  116. echo "receive";
  117. echo "done";
  118. return;
  119. }
  120.  
  121. ?>
Add Comment
Please, Sign In to add comment