В этой статье хотел бы поговорить об отправке post-запроса на сервер (на сайт). Мы уже проходили это, только в той части мы проходили о том, как отправить post-запрос на сервер (сайт) только текстовые данные, а если нам надо «залить» например на хостинг картинку или на файлообменник файл, то как тогда быть, вот об этом и поговорим. Все известно, что страница с отправкой такими данными (точнее форма) имеет тип — multipart-from. Для того, чтобы работать нам с таким типом данных форм, необходимо в Uses подключить модуль — idMultiPartFormData. Отлично, теперь используя данный модуль мы можем в своих приложения использовать объект типа данных — TIdMultiPartFormDataStream. Давайте уже приступим к работе с этими данными. Ну как всегда у нас на форме
- TIdHTTP
- TIdAntiFreeze
- TButton
Для начала нам необходимо выбрать сайт, куда мы будем заливать изображение, файл или еще что-то. Я выбрал imagezzz.ru. На этот фотохостинг я буду «заливать» изображения и затем получу ссылку на это изображения, а делать с ней мы что захотим, то и будем. Для начала создаем нашу переменную, но для этого нам надо узнать имя на данном сайте, а также адресс скрипта, который обрабатывает данную форму. Для этого я посмотрел исходный код данной страницы сайта и что обнаружил.
- Имя — 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
Похожие записи
Метки: idAntifreeze, Idhttp, idMultiPartFormData, post-запрос, отправка post-запроса на сервер