В этой статье хотел бы поговорить об отправке post-запроса на сервер (на сайт). Мы уже проходили это, только в той части мы проходили о том, как отправить post-запрос на сервер (сайт) только текстовые данные, а если нам надо «залить» например на хостинг картинку или на файлообменник файл, то как тогда быть, вот об этом и поговорим. Все известно, что страница с отправкой такими данными (точнее форма) имеет тип — multipart-from. Для того, чтобы работать нам с таким типом данных форм, необходимо в Uses подключить модуль — idMultiPartFormData. Отлично, теперь используя данный модуль мы можем в своих приложения использовать объект типа данных — TIdMultiPartFormDataStream. Давайте уже приступим к работе с этими данными. Ну как всегда у нас на форме

  • TIdHTTP
  • TIdAntiFreeze
  • TButton

Для начала нам необходимо выбрать сайт, куда мы будем заливать изображение, файл или еще что-то. Я выбрал imagezzz.ru. На этот фотохостинг я буду «заливать» изображения и затем получу ссылку на это изображения, а делать с ней мы что захотим, то и будем. Для начала создаем нашу переменную, но для этого нам надо узнать имя <input type=»file»> на данном сайте, а также адресс скрипта, который обрабатывает данную форму. Для этого я посмотрел исходный код данной страницы сайта и что обнаружил.

  • Имя <input type=»file»> — userimage
  • Скрипт обработки — imagescript.php

Так вроде бы все узнали, создаем переменную и заполняем это поле, путем указания «путь к заливаему файлу на фотохостинг«. Далее все как мы проходили обычный post-запрос к указанному скрипту и его обработка, обычный парсинг данных, как Вам удобно или как я Вам показывал парсинг данных или через регулярные выражения. Вот и все, правда ничего сложного нету?

procedure TForm1.Button1Click(Sender: TObject);
var
MultiData:TIdMultiPartFormDataStream;
html:WideString;
begin
try
MultiData:=TIdMultiPartFormDataStream.Create;
MultiData.AddFile('userimage','C:\1.jpg','image');
MultiData.AddFormField('tags1','1,2');
html:=IdHTTP1.Post('http://imagezzz.ru/imagescript.php',MultiData);
Delete(html,1,pos('Ссылка на страницу с изображением',html));
Delete(html,1,pos('value="',html)+length('value="')-1);
Delete(html,pos('">',html),length(html));
MultiData.Free;
except
on e:Exception do
MultiData.Free;
end;
end;

Исходники статьи качаем тут

Хочу заметить, что сейчас очень популярны кавер-группы. Это те группы, которые исполняют кавер-версию песни, то есть авторская музыкальная композиция. Можно узнать про кавер группы москвы, которых как оказалось достаточно много и про каждую из них очень интересно почитать.
Автор статьи - Andrey53

Метки: , , , ,

Оставить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*