Delphi. Uploading to Keep2Share. Successful attempt

А теперь удачная попытка. Суть в том, что мы сначала отправляем файлы на VPS, далее, уже на Keep2Share через PHP скрипт.

Сам скрипт отправки файла с одного сервера на другой достаточно прост

Он выдает некоторую информацию, из которой нам с вами нужно вытащить ссылку на закачанный файл. Вот какой получится результат

82

Вообще конечную информацию я храню в TStringList в формате

ИмяФайлаНаКлиенте=Ссылка на Сервере

Вытаскивание ссылки из такой строки происходит стандартным образом через TStringList.Values

83

В принципе, что я сделал, взял уже готовую свою наработку по загрузке файлов по HTTP протоколу чанками и добавил дополнительный запрос уже с сервера idHTTPServer на K2S сервер через IIS сервер с помощью PHP скрипта. В общем, немного замудрено, но работает.

Причем, изначально у меня был построен визуальный компонент на основе TPanel. Я его в данном случае использую не визуально, обращаясь к одному из его методов.

Исходники

373_ps_httpclient_dev

Как пользоваться?

В проектной группе 3 проекта – сервер, клиент, оформленный в виде компонента и тестовая программа

85

Нужно инсталлировать компонент TPS_HTTPClient, Delphi будет ругаться на пути к юнитам, это нормально, добавьте всё через Project>Options>SearchPath

У меня для тестовой программы прописаны следующие пути

84

Что делать с сервером?

Сервер нужно поместить в ту же директорию, в которой находится наш сайт на IIS, в моем случае это выглядело так…

86

Обращение к скрипту на сервере настроено в юните

uHTTPServerCommandGet.pas

и выглядит оно так… поменяйте его по своему усмотрению

здесь важно то, чтобы сервер находился в директории сайта, потому что скрипту на PHP нужно подать относительный путь до файла.

Также понадобятся 2 файла – создайте и разместите их в директории сайта, например в корневой

87

 

Keep2Share_Upload.php

И второй файл  Keep2ShareAPI.php

Что делать с клиентом?

В принципе ничего такого делать не нужно. Всё уже собрано. Можно просто компилировать и запустить третий тестовый проект из проектной группы и все заработатает.

Вот так объявляется экземпляр класса компонента – здесь мы показываем где и на каком порту будет работать наш сервер

Обязательно удаляем из памяти в ручную

Вот так отправляем на сервер K2S

Вот так обрабатываем события

Вот так вытаскиваем ссылку

Вот такой получается результат

83

 

This entry was posted in Delphi, Indy. Bookmark the permalink.