Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

передача файла в web-форму через HttpCli   Найти похожие ветки 

 
RA ©   (2006-07-31 09:30) [0]

1. На сайте есть форма, которая принимает файл. Выглядет она так:
<form method="post" action="http://some.net/test.php" enctype="multipart/form-data">
Upload file: <input type="file" name="inupfile" class="input">
<input type="submit" name="btnupload" id="btnupload" value="Upload">
</form>


2. В эту форму нужно передать файл с помощью компонента HttpCli, входящий в ICS.

Принимается всё - от ссылок на теорию до рекомендаций других компонент... :)


 
RA ©   (2006-08-02 16:08) [1]

Кто ищет тот всегда найдёт. Поэтому сам и отвечу - мож кому пригодится.
Использовал библиотеку Synapse и пример с неё. Пример немного измёнён чтоб можно было передавать параметр param1 через POST вместе с файлом.

function HttpPostFile(const URL, FieldName, FileName: string;
 const Data: TStream; const ResultData: TStrings): Boolean;
const CRLF = #$0D + #$0A;
var HTTP: THTTPSend;
   Bound, s: string;
begin
 Bound := IntToHex(Random(MaxInt), 8) + "_Synapse_boundary";
 HTTP := THTTPSend.Create;
 try

   //для передачи параметра param1 методом POST
   s := "--" + Bound + CRLF;
   s := s + "content-disposition: form-data; name="param1"" + CRLF + CRLF;
   s := s + "Value of param1" + CRLF;

   s := s+"--" + Bound + CRLF;
   s := s + "content-disposition: form-data; name="" + FieldName + "";";
   s := s + " filename="" + FileName +""" + CRLF;
   s := s + "Content-Type: Application/octet-string" + CRLF + CRLF;
   HTTP.Document.Write(Pointer(s)^, Length(s));
   HTTP.Document.CopyFrom(Data, 0);
   s := CRLF + "--" + Bound + "--" + CRLF;
   HTTP.Document.Write(Pointer(s)^, Length(s));
   HTTP.MimeType := "multipart/form-data, boundary=" + Bound;

   Result := HTTP.HTTPMethod("POST", URL);
   ResultData.LoadFromStream(HTTP.Document);
 finally
   HTTP.Free;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.057 c
15-1164790906
Юрий Зотов
2006-11-29 12:01
2006.12.24
Шутка от BIOS


15-1165082731
palva
2006-12-02 21:05
2006.12.24
Что-то не верится. Неужели так много?


15-1164755613
Real
2006-11-29 02:13
2006.12.24
Ссылка на папку вида - file://10.0.0.200/folder


15-1165248006
oldman
2006-12-04 19:00
2006.12.24
Наши опять взяли Кубок Девиса...


2-1165230352
IGo
2006-12-04 14:05
2006.12.24
Не отображается Label, пока не загрузится OLE объект