Jak wysłać plik przez formularz www z poziomu Delphi
Ludomir
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ż:
To zainstaluj wersje 9.0.18
zainstalowalem indy z tej strony, ale IdMultiPartFormData nie ma ;(. W googlach tez tego nie ma...
Uzywaj w takich przypadkach znacznika <plain>
W miejscu tego formularza miał być kod... Ale wyszedł formularz.
//dopisane
thx :)