Возможно ли из 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.
Это естессно но совсем не то