How do I upload a file using http post? Delphi 2009

delphi, delphi-2009, file-upload, http-post, indy

Solution

`TIdHTTP` has two overloaded versions of `Post()` that take a filename as input:

var
  Response: String;

Response := IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt');

.

var
  Response: TStream;

Response := TMemoryStream.Create;
IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt', Response);
...
Response.Free;

Note that you are posting to an `HTTPS` URL, so you need to first assign an SSL-enabled IOHandler, such as `TIdSSLIOHandlerSocketOpenSSL`, to the `TIdHTTP.IOHandler` property beforehand.

Problem

My goal is to upload a text file via HTTP post I am using Delphi 2009. Say for example to the following URL https://www.example.com/ex/exampleAPI.asmx/Process I understand it can be done by using the TIdHttp component. And the following call ``` IdHttp1.Post(); ``` But I cant figure out how to set up everything i.e. specifying the url and including the file to be posted. Thanks.

Original source