Возможно ли из Clarion использовать такую конструкцию с передачей массива ?
Код: Выделить всё
curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures", CURLFORM_ARRAY, forms, CURLFORM_END)
Модератор: Дед Пахом
Код: Выделить всё
curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures", CURLFORM_ARRAY, forms, CURLFORM_END)
Код: Выделить всё
FormAdd PROCEDURE(STRING pFieldName, STRING pContents), CURLFORMcode, PROC
FormAddFile PROCEDURE(STRING pFieldName, STRING pFileName, <STRING pContentType>), CURLFORMcode, PROC !ContentType like 'image/jpeg'
FormPost PROCEDURE(STRING pUrl, <STRING pResponseFile>, <curl::ProgressDataProcType xferproc>), CURLcode, PROC
FormPost PROCEDURE(STRING pUrl, *IDynStr pDynStr, <curl::ProgressDataProcType xferproc>), CURLcode, PROC
FormPostStr PROCEDURE(STRING pUrl, <*STRING pResponseBuf>, <curl::ProgressDataProcType xferproc>), CURLcode, PROC
FormFree PROCEDURE()
Код: Выделить всё
Loop Indx=1 to Records(pPostFields)
Get(pPostFields,Indx)
IF ~(pPostFields.Value and pPostFields.Id) Then Cycle.
cfres = self.FormAdd(pPostFields.Id, pPostFields.Value)
IF cfres <> CURL_FORMADD_OK
res = -1
END
End
Код: Выделить всё
Loop Indx = 1 to Records(pFiles)
GET(pFiles,Indx)
szfilename = CLIP(pFiles.item)
cfres = self.FormAddFile(szarg, pFiles.item)
IF cfres <> CURL_FORMADD_OK
res = -1
END
end
res = self.FormPost(pUrl,pResponseFile, xferproc)
Код: Выделить всё
curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures", CURLFORM_ARRAY, forms, CURLFORM_END);
В моем случае, FormAddFile будет создавать новое поле формы, но имена полей д.б. одинаковые - files.comment string
claimNumber string
files array файлы к комментариям
Код: Выделить всё
curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures", CURLFORM_ARRAY, forms, CURLFORM_END);
Код: Выделить всё
curl.Init()
curl.AddHttpHeader('ContentType:application/x-www-form-urlencoded; charset=utf-8')
curl.SetHttpHeaders()
mime.Init(curl)
part = mime.AddPart()
mime.SetFileData(part, pInputFile) ! Передаём в libcurl.dll только имя файла, остальное она сделает сама
mime.SetName(part, 'InputFile')
curl.SetMimePost(mime)
rc = curl.SendRequest(url)
Документация libcurl писал(а):The contents of the file is read during the file transfer in a streaming manner to allow huge files to get transferred without using much memory.