Страница 3 из 30

libcurl for Clarion

Добавлено: 15 Ноябрь 2015, 19:34
pansoft
Дед Пахом писал(а): Дали бы мне ссылочку на url, которая файлы принимает...
На фтр закачал чужую библиотеку в папку curl. Может чем поможет. При запуске не находит какой-то фаил...

libcurl for Clarion

Добавлено: 15 Ноябрь 2015, 20:24
Дед Пахом
v1.02 доступна.
Чтобы отправить файл на http, пишем

Код: Выделить всё

  curl.Init()
  
  res = curl.PostFile(url, 'xml_file', 'client.xml', respfile)
  IF res = CURLE_OK
    MESSAGE('Success, see file '& CLIP(respfile) &' for details', 'Post test', ICON:Asterisk)
  ELSIF res = -1
    MESSAGE('curl_formadd failed: errcode '& res, 'Post test', ICON:Asterisk)
  ELSE
    MESSAGE('PostFile failed: '& curl.StrError(res), 'libcurl', ICON:Exclamation)
  END
Есть пример в папке examples\PostFile.

А также простенький FTP менеджер (app для C10). Пока он не умеет копировать папки...

libcurl for Clarion

Добавлено: 15 Ноябрь 2015, 22:56
pansoft
Дед Пахом, best!

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 8:20
Игорь Столяров
Дед Пахом писал(а): А также простенький FTP менеджер (app для C10).
Подскажите пожалуйста, а как удалить файл по имени через cURL в sFTP разделе ?
Вчера весь вечер пытался разобраться сам. Честно.
Но видимо пока это выше моего понимания ... :( Спасибо.

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 9:19
Admin
Ну грубо говоря вот так:

Код: Выделить всё

curl_setopt($ch, CURLOPT_QUOTE, array("DELE /path/to/file.ext")); 
Но как это реализуется классом х.з.

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 9:38
Admin
Дед Пахом писал(а): v1.02 доступна.
Подозреваю что тут

Код: Выделить всё

curl_slist_append(SELF.plist, szData)
нужно написать

Код: Выделить всё

SELF.plist = curl_slist_append(SELF.plist, szData)
Иначе, SELF.plist всегда = 0

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 10:06
morkovin
На фтр закачал чужую библиотеку в папку curl. Может чем поможет. При запуске не находит какой-то фаил...
Не хватает libcurl.lib, который производится LibMaker-ом от нужной версии libcurl.dll.

p.s. Продукт от ДедаПахома сейчас безусловный тренд месяца(имхо)

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 10:13
Admin
morkovin писал(а): Не хватает libcurl.lib
в папку \libcurl-master\lib\ смотреть пробовали? :)

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 11:45
Дед Пахом
Admin писал(а):Подозреваю что тут

Код: Выделить всё

curl_slist_append(SELF.plist, szData)
нужно написать

Код: Выделить всё

SELF.plist = curl_slist_append(SELF.plist, szData)
Иначе, SELF.plist всегда = 0
Спасибо, исправлю!

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 11:51
Дед Пахом
Игорь Столяров писал(а): Подскажите пожалуйста, а как удалить файл по имени через cURL в sFTP разделе ?
Сам ещё не знаю ;-)

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 13:32
Дед Пахом
Дед Пахом писал(а): Подскажите пожалуйста, а как удалить файл по имени через cURL в sFTP разделе ?Сам ещё не знаю
Вот так:

Код: Выделить всё

!pUrl is ftp://user@95.96.97.98, pFilename is /home/files/testfile.txt
TCurlFtpClass.DeleteFile      PROCEDURE(STRING pUrl, STRING pFilename)
ftpcmd                          TCurlSList
res                             CURLcode, AUTO
  CODE
  ftpcmd.Append('DELE '& pFilename)
  res = SELF.SetQuote(ftpcmd)  
  IF res <> CURLE_OK
    RETURN res
  END

  res = SELF.SetOpt(CURLOPT_URL, pUrl)
  IF res <> CURLE_OK
    RETURN res
  END
  
  RETURN SELF.Perform()
В новой версии будет класс TCurlFtpClass, специально для FTP

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 14:43
Admin
Исправление что я писал сделать нужно или не будет работать SELF.SetQuote(ftpcmd), по идее.

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 14:55
Дед Пахом
Admin писал(а): Исправление что я писал сделать нужно или не будет работать SELF.SetQuote(ftpcmd), по идее.
Да, исправление нужно, хотя и в таком виде _одна_ запись в slist попадает, последняя.

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 15:04
Игорь Столяров
Пытаюсь работать с библиотекой ... у меня есть большие подозрения, что работа ведется по протоколу FTP, а не SSH.
При кол-ве файлов в разделе с превышением лимита FTP, LoadRemoteDir() возвращает ошибку.
Проверил несколько раз - могу загнать в раздел файлы и дать данные раздела на сервере для проверки.

libcurl for Clarion

Добавлено: 17 Ноябрь 2015, 15:18
Дед Пахом
Игорь Столяров писал(а): Проверил несколько раз - могу загнать в раздел файлы и дать данные раздела на сервере для проверки.
Давай конечно.