FAQ » Sieć

Jak wysłać plik przez formularz www z poziomu Delphi

  • 2012-03-02 19:25
  • 4 komentarze
  • 1038 odsłon
  • Oceń ten tekst jako pierwszy
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ż:

4 komentarze

UnAdamBoduch 2005-09-21 10:04

To zainstaluj wersje 9.0.18

tomkiewicz 2005-01-30 01:20

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

Adam Boduch 2004-07-08 11:25

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

Ludomir 2004-07-08 11:14

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

//dopisane
thx :)