Skip to content

Commit a2790bf

Browse files
committed
[libcurl] support uploading large files
curl_mime_data requires storing the file in memory use curl_mime_filename instead of curl_mime_data to support uploading large files.
1 parent b7f31dd commit a2790bf

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

modules/openapi-generator/src/main/resources/C-libcurl/apiClient.c.mustache

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,16 @@ void apiClient_invoke(apiClient_t *apiClient,
387387
memcpy(&fileVar,
388388
keyValuePair->value,
389389
sizeof(fileVar));
390-
curl_mime_data(part,
391-
fileVar->data,
392-
fileVar->len);
393-
curl_mime_filename(part,
394-
"image.png");
390+
if (fileVar->filepath) {
391+
curl_mime_filedata(part, fileVar->filepath);
392+
} else {
393+
curl_mime_data(part, fileVar->data, fileVar->len);
394+
}
395+
if (fileVar->filename) {
396+
curl_mime_filename(part, fileVar->filename);
397+
} else {
398+
curl_mime_filename(part, "image.png");
399+
}
395400
} else {
396401
curl_mime_data(part,
397402
keyValuePair->value,

modules/openapi-generator/src/main/resources/C-libcurl/binary.h.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ typedef struct binary_t
77
{
88
uint8_t* data;
99
unsigned int len;
10+
char *filename;
11+
char *filepath;
1012
} binary_t;
1113

1214
binary_t* instantiate_binary_t(char* data, int len);

0 commit comments

Comments
 (0)