title: Http Post with indy
body: <p>I have a simple php script on my web server which I need to upload a file using HTTP POST, which I am doing in Delphi.</p>
  
  <p>Here is my code with Indy but aparantely it won't work and I can't figure out what i am not doing properly. How can I view what I send on the server is there such a tool ?</p>
  
  <pre><code>procedure TForm1.btn1Click(Sender: TObject);
  var
    fname : string;
    MS,dump : TMemoryStream;
    http  : TIdHTTP;
  
  const
    CRLF = #13#10;
  begin
    if PromptForFileName(fname,'','','','',false) then
    begin
      MS := TMemoryStream.Create();
      MS.LoadFromFile(fname);
      dump := TMemoryStream.Create();
      http := TIdHTTP.Create();
      http.Request.ContentType:='multipart/form-data;boundary =-----------------------------7cf87224d2020a';
      fname := CRLF + '-----------------------------7cf87224d2020a' + CRLF + 'Content-Disposition: form-data; name=\"uploadedfile\";filename=\"test.png"' + CRLF;
      dump.Write(fname[1],Length(fname));
      dump.Write(MS.Memory^,MS.Size);
      fname := CRLF + '-----------------------------7cf87224d2020a--' + CRLF;
      dump.Write(fname[1],Length(fname));
      ShowMessage(IntToStr(dump.Size));
      MS.Clear;
      try
      http.Request.Method := 'POST';
      http.Post('http://posttestserver.com/post.php',dump,MS);
      ShowMessage(PAnsiChar(MS.Memory));
      ShowMessage(IntToStr(http.ResponseCode));
      except
      ShowMessage('Could not bind socket');
      end;
    end;
  end;
  </code></pre>