Może się przydać mniej doświadczonym :) Wskazówke opieram o komponent IdHTTP. Można to potraktować jako uzupełnienie do artu Adama o tym. Teraz kod do wysyłania:
uses
  IdMultiPartFormData;
 
var src: TIdMultiPartFormDataStream(); //typ do którego dodajemy pliki które chcemy wysłać
begin
  src := TIdMultiPartFormDataStream.Create;
  src.AddFile(FIELD, PLIK, 'multipart/form-data');
//FIELD - nazwa pola w formularzu na stornie www
//PLIK - nazwa pliku jaki chcemy przekopiować
 
  HTTP.Post('http://www.mój.com/index.php', src);
 
  src.Free;
end;
 


Formularz WWW może tak wyglądać:
<form enctype="multipart/form-data" action="index.php" method="post">
  Wskaż plik:
  <input type="file" name="plik">
  <input type="submit" name="wyslij" value=" Wyslij ">
</form>


jeżeli chcemy jeszcze jakieś inne dane (np. tekstowe) wysłać to używamy metody:
 
src.AddFormField(FIELD, VALUE);
src.PrepareStreamForDispatch;  //w przypadku gdy wysyłamy pliki i inne pola formularza
 

I dalej nie musze tłumaczyć. W taki prosty sposób można wysłać plik na swój serwer, nie łącząc się przez ftp tylko formularz www, lub na kogoś innego (np. 4programmers :))

Zobacz też:

Kategoria: Delphi » Sieć

4 komentarze

Brak avatara
Napisany 2005-09-21 10:04 przez UnAdamBoduch

To zainstaluj wersje 9.0.18

Avatar: tomkiewicz
Napisany 2005-01-30 01:20 przez tomkiewicz

zainstalowalem indy z tej strony, ale IdMultiPartFormData nie ma ;(. W googlach tez tego nie ma...

Brak avatara
Napisany 2004-07-08 11:25 przez Adam Boduch

Uzywaj w takich przypadkach znacznika &lt;plain&gt;

Avatar: Ludomir
Napisany 2004-07-08 11:14 przez Ludomir

W miejscu tego formularza miał być kod... Ale wyszedł formularz.

//dopisane
thx :)

4programmers.net