上传文件较大时,libcurl崩溃

时间:2019-05-25 13:07:14

标签: c libcurl

我尝试使用libcurl将文件上传到服务器。主要代码是:

   /* Create the form */
    form = curl_mime_init(curl);

    /* Fill in the file upload field */
    field = curl_mime_addpart(form);
    curl_mime_name(field, "imgfile");
    curl_mime_filedata(field, uploadFilePath);

    // setup mime post form
    curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);

    /* enable verbose for easier tracing */
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

    /* Perform the request, res will get the return code */
    ret = curl_easy_perform(curl);

除非上传文件很大,否则一切正常。当文件很大时,libcurl崩溃,http详细日志为:

> POST /somepath HTTP/1.1
Host: ***********
Authorization: Basic ************
User-Agent: *************
Accept: */*
Content-Length: 850917928
Content-Type: multipart/form-data; boundary=------------------------d54945c20f027253
Expect: 100-continue


* Mark bundle as not supporting multiuse
< HTTP/1.1 413 Request Entity Too Large
< Date: Sat, 25 May 2019 09:15:16 GMT
< X-Frame-Options: SAMEORIGIN
< Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self' wss://*:*; img-src 'self' data:; frame-src 'self'; font-src 'self'; object-src 'self'; style-src 'self' 'unsafe-inline'
< X-Frame-Options: SAMEORIGIN
< Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self' wss://*:*; img-src 'self' data:; frame-src 'self'; font-src 'self'; object-src 'self'; style-src 'self' 'unsafe-inline'
< Connection: close
< Content-Type: text/html; charset=iso-8859-1
< 

* Closing connection 0

Signal: SIGSEGV (Segmentation fault)

我尝试禁用Expect: 100-continue,但没有任何变化。

0 个答案:

没有答案