para subir ficheros necesitas mejor el idFTP no el IdHTTP,
Aqui tienes un ejemplo,
pon en el form un idFTP, dos botones y un OpenDialog1.
Yo lo he probado y funciona, estaría mejor con una barra de progreso y hacer comprobaciones y demás, pero funcionar funciona.
Código Delphi
[-]
procedure TForm1.btnConnectClick(Sender: TObject);
begin
idFTP1.Host := 'HOST';
idFTP1.Port := 21;
idFTP1.Username := 'USER';
idFTP1.Password := 'PASSWORD';
idFTP1.Connect;
ShowMessage('Conectado con el servidor.');
end;
procedure TForm1.btnUploadClick(Sender: TObject);
begin
if idFTP1.Connected then
begin
if OpenDialog1.Execute then
begin
idFTP1.Put(OpenDialog1.FileName, ExtractFileName(OpenDialog1.FileName));
idFTP1.Disconnect;
ShowMessage('Fichero subido.');
end;
end;
end;