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.

Leave a Reply