ВСЕ ЗАПИСИ

Статьи,заметки

Отправка post запросов с помощью Delphi

Здесь я расскажу о том,как написать приложение,аналог html-формы,для отправки данных на сайт,используя метод post.

Приведённый здесь рабочий код,гарантированно компиллируется на Delphi 7, версия Indy 9,серверную часть можно запустить локально на Денвере с версией PHP 5.3.13


Код HTML

форма отправки файла
<html>
<body>
<p><b>Загрузить файл</b></p>
<form action="http://localhost/site.com/uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="data"><br>
<input type="text" name="data2"><br>
<input type="submit" value="send"><br>
</form> </body> </html>
Сохраним этот код в файл form.htm,только url в form action изменим на тот, где реально находится скрипт-обработчик

Код PHP

скрипт-обработчик запроса

<?php $file1 = $_FILES['data']['tmp_name']; $name = basename($_FILES['data']['name']); $dir='up/'; /* переменная $dir указывает путь,куда будет сохранен файл на сервере,в моём примере это папка "up" которая находится в одном каталоге со скриптом */ $id=$_POST['data2']; //переменная $id - это параметр поля формы name="data2",в ней можно,передать дополнительные параметры, например текст описания к файлу if (!file_exists($file1)) { echo "ERROR"; } else { move_uploaded_file($file1, $dir.$name); echo "OK <br>"; echo $id; } ?>

Сохраним этот код в файл script.php


Разместим скрипт на хостинге, или используем локальный сервер на Денвере. Попробуем отправить через форму какой-нибудь файл. Если всё было сделано без ошибок,то в директории /up/ на сервере должен появится переданный файл,а браузер выдаст страницу с сообщением OK и текст,который был введён в текстовое поле формы,это поле вообще конечно можно не использовать,но я добавил его для примера.

А теперь реализуем это в delphi приложении

Создадим новый проект,добавим на форму компоненты Buttom,Memo (для визуального отображения ответа сервера),Label с надписью "ответ сервера"(необязательно),компонент idHTTP с вкладки Indy Clients; в uses вручную пропишем IdMultipartFormData,остальное что нам нужно добавится автоматически.


Код Delphi

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdMultipartFormData, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
IdHTTP1: TIdHTTP;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
idHttp1:TIdHTTP;
FileName,val,response: string;
formData:TIdMultiPartFormDataStream;
begin
idHttp1:= TIdHTTP.Create(nil);
FileName := '1.txt';
val:= Edit1.Text;
formData:=TIdMultiPartFormDataStream.Create;
formData.AddFile('data',fileName,'application/octet-stream');
formData.AddFormField('data2', val);//дополнительное текстовое поле формы
response := idHttp1.Post('http://localhost/site.com/uploader.php',formData);//здесь url скрипта-обработчика
Memo1.Lines.Text:= response;
formData.Free;
end;
end.


Если всё было настроено правильно,в папке /up/ на сервере окажется файл 1.txt ,в Memo будет выдана строчка OK и текст переданный в Edit.

Если необходимо в post-запросе отправлять ещё какой-либо параметр,объявим ещё одну переменную в var,например

val2: string;

Соответственно присвоим ей значение в программе

val2:= 'что-то ещё';

и после строки

formData.AddFormField('data2', val);

добавим

formData.AddFormField('data3', val2);

В php скрипте эту переменную обработаем так:

$id2=$_POST['data3'];

echo $id2;

Исходник к этому материалу можно скачать здесь

Добавлено: март 2013

©Veterock




комментарии (5)



написал michp630
Hello. And Bye.
добавлено: 23.05.18 18:41
написал hardlinuxx
adult porno hard_linux@mail.ru buy viagra
добавлено: 18.05.18 20:47
написал IgnatiyBrave
Помощь брокера в получении кредита меры в случае невыплаты потребительского.. У вас плохая кредитная история и срочно нужны деньги? банки отказывают вам? мы предлагаем 4 способа для реального получения кредита с плохой кредитной историей.. Оформить пластиковую карточку не составит труда, обратившись в любое ближайшее отделение сбербанка, вы пройдете эту процедуру буквально за считанные минуты. Вопрос в том, как потом класть на нее средст.. mdDsa5KMS
добавлено: 30.04.18 09:07
написал Dorofeypoevy
{Как подтянуть кожу чтобы предотвратить обвисание #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] во время похудения и как.. |Home как подтянуть кожу после похудения как подтянуть кожу после похудения.. |Как подтянуть кожу после похудения? • форум косметика и макияж. Замеры скажут, что нужно.. |Как подтянуть кожу после похудения похудения. #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] время похудения подтянуть.. |Как подтянуть кожу после похудения. Чтобы подтянуть кожу рука все время.. |Как подтянуть кожу после похудения в домашних условиях. Зацепила на фото эксперта.. |Как подтянуть кожу после #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] во время подтянуть кожу после.. |Подтянуть кожу после похудения и как подтянуть #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] время является.. |Как подтянуть обвисшую #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] после похудения: время. Обвисшая подтянуть кожу.. |Как подтянуть кожу лица после похудения? как подтянуть #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] ведь в ночное время.. |10 способов подтянуть кожу тела после похудения или родов. #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] даже если вы уже знаете.. |Как подтянуть кожу после похудения: как подтянуть кожу после надо всё время.. |Узнаете как эффективно подтянуть кожу на животе время. #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] 3 кожу после похудения?.. |Как подтянуть кожу во #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] похудения? так же после она должна чем подтянуть кожу во время.. |Небольшие технические трудности. В ближайшее #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] мы появимся в сети и сайт станет.. |Как подтянуть кожу после #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] помогающие подтянуть кожу во время похудения.. |Как подтянуть кожу на лучшее время для кожу после похудения.. |Как подтянуть кожу после похудения в настоящее время для подтянуть кожу.. |Как подтянуть кожу после похудения. Как #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] красивой кожи после похудения.. |Через некоторое время. Подтянуть кожу #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] кожу после похудения.. |Чтобы подтянуть кожу после похудения, во время похудения пользуйтесь уже знакомыми.. |Чтобы подтянуть кожу по
добавлено: 23.04.18 11:43
написал Georgiyjaity
Лучшие эротические фото обнажёшшых девушек. Красивая, мягкая русская эротика.. Сни голих дівчат. Сексі фото дівчат. Історії дівчат порно. Піськи дівчат шо.. Здесь ты найдешь на свой вкус фото пизды девушек: мокрые, перевозбужденные или же письки феминисток, которых не возбудишь просто одним лишь взглядом. Голые девчата. Бритые письки.. Поэтому секс лесбиянок настолько чувствительный и красивый, что иногда даже завораживает. Сайт вы подтверждаете, что вы старше 18 лет, в противном случае немедленно покиньте сайт. Порно фото мама син f.. 63jmxg598d
добавлено: 20.04.18 04:28
Имя

Сообщение

введите защитный код


Обновить

Powered by ©Veterock Studio 2013