Отправка файлов с терминала на сервер FTP

Для отправки файлов с терминала на FTP сервер была разработана дополнительная утилита FTP.exe.

Для работы данной утилиты необходимо произвести ряд настроек, которые прописаны в в файле FTP.ini (присутствует в архиве с утилитой). Открыв данный файл вы увидите список параметров которым нужно прописать соответствующие значения:

[SERVER]

Host=адрес FTP сервера
Login=логин
Password=пароль
Port=порт(обычно 21)

[FILES]

FileToSend=файл_отправки 1>имя_отправленного_файла{Counter 1}|файл_отправки_2>имя_отправленного_файла{Counter 2}|...|файл_отправки_n>имя_отправленного_файла{Counter n}
Counter 1=имя файла счетчика 1
Counter 2=имя файла счетчика 2
...
Counter n=имя файла счетчика n

С секцией [SERVER] все достаточно прозрачно, информация будет использоваться для соединения с FTP сервером. Рассмотрим подробнее секцию [FILES].

Для простоты восприятия начнем сразу с примера:

FileToSend=test.txt>testFTP/test_{Counter1}.txt
Counter1=number.txt

После выполнения этой команды файл test.txt, находящийся в том же каталоге что и FTP.exe, отправится на FTP сервер, в уже созданный каталог testFTP с именем test_{Counter1}.txt, где Counter1 - число из файла счетчика number.txt. Таким образом файл с одним именем, отправляется на сервер со своим именем за счет увеличения счетчика (это дает возможность не захламлять файлами жесткий диск, а вести один перезаписываемый файл и отправлять его на сервер с уникальным именем).

  • Количество отправляемых файлов не ограничено. Команды на отправку разделяются знаком |.
  • Шаг счетчика равен 1.
  • Счетчик может начинаться с любого числа указанного в файле счетчика.
  • Количество счетчиков не ограничено, единственное условие совпадение надписи в скобках {Counter1} и параметра ниже Counter1= (если программа не найдет соответствующего параметра, то она запишет в FTP.ini параметр Counter1= со значением имени файла Counter1.txt, создаст этот файл на жестком диске, и начнет счет с 1).
  • Если файла счетчика number.txt нет, то файл создастся автоматически и начнется отсчет с 1.
  • Если значения в фигурных скобках не будет, то имя отправляемого файла будет распознаваться как текст, без счетчиков (при этом имя отправляемого файла изменяться не будет).
  • В командах используется только один счетчик. Если в имени отправленного файла будет присутствовать ссылка на два счетчика, то распознается и заменится только первый.

Программа работает в скрытом режиме, чтобы не помешать работе основной вызывающей программе, поэтому отследить ошибки в работе можно только через лог FTPError.log. Со сменой дня файлы логов упаковываются в архив и помещаются в папку FTPLog.

Применимо к программе PayPRO данную утилиту можно вызвать через команду Выполнить (exec), команда будет выглядеть так:

Выполнить=FTP.exe
или
Exec=FTP.exe 

Утилита FTP.exe может быть запущена с параметром, в таком случае будет выполняться параметр, а секция [FILES] проигнорирована. Параметр должен соответствовать виду

файл отправки>имя отправленного файла

между именами файлов обязательно должен быть знак >. Команда для запуска программы с параметром через ПО PayPRO будет выглядеть так:

Выполнить=FTP.exe test.txt>testFTP/test_{TERMCHECK}.txt

В именах файлов и папок не должно присутствовать пробелов!

Так файл test.txt отправится на сервер в папку testFTP с именем test_{номер чека}.txt. При этом папка testFTP уже должна быть создана. Обратите внимание, что при вызове утилиты с параметром есть возможность передачи значений от основной запускающей программы к программе FTP.exe, такие как номер чека, время оплаты.

  • Не забывайте про недопустимые символы в именах файлов: \ / : * ? » < > |
  • На терминал лучше всего копировать программу FTP.exe в корневой каталог. Если программа скопирована в другой каталог то для корректной работы ей необходим 7z.exe
  • Программа работает через очередь отправки и временные файлы, создаваемые на жестком диске, поэтому, если возникают сбои в отправке (например нет связи), то файлы отправятся после их устранения.
  • Временные файлы удаляются после их отправки на сервер.
  • Если временные файлы удалены с жесткого диска, но записи о них находятся в очереди отправки, то при первом запуске очередь отправки очистится от таких записей.