Altro Invio File da Client a Server (Delphi XE)

mrcamarium

Utente Silver
7 Gennaio 2022
105
24
6
56
Sto realizzando un codice in grado di inviare un file dal cliente al server:
Lato Cliente:
Codice:
procedure TForm1.Button3Click(Sender: TObject);
var TFLFileOut: TFileStream;
begin
  TFLFileOut:= TFileStream.Create(ToDownload.Text, fmOpenRead);
  Client.IOHandler.Write(TFLFileOut, 0, true);
end;
Lato server:
Codice:
procedure TForm1.ServerExecute(AContext: TIdContext);
var TFSFileIn: TFileStream;
begin
Label1.Caption := 'Arriva qualcosa...';
TFSFileIn:= TFileStream.Create(Edit1.Text, fmCreate);
AContext.Connection.IOHandler.ReadStream(TFSFileIn);
TFSFileIn.Free;
end;
Sebbene il programma compila bene il file trasferito è zero. Allego anche file completo.
 

Allegati

  • Da Cliente A Server.zip
    1.2 MB · Visualizzazioni: 5
Anche se ho migliorato il codice continua a trasferire un file di valore zero.
Lato Cliente:
Codice:
procedure TForm1.Button3Click(Sender: TObject);
var TFLFileOut: TFileStream;
begin
  TFLFileOut := TFileStream.Create(ToDownload.Text, fmOpenRead or fmShareDenyWrite);
  try
    Client.IOHandler.Write(TFLFileOut, 0, true);
  finally
    TFLFileOut.Free;
  end;
end;
Lato server:
Codice:
procedure TForm1.ServerExecute(AContext: TIdContext);
  var TFSFileIn: TFileStream;
begin
  Label1.Caption := 'Arriva qualcosa...';
  TFSFileIn := TFileStream.Create(Edit1.Text, fmCreate);
  try
    AContext.Connection.IOHandler.ReadStream(TFSFileIn);
  finally
    TFSFileIn.Free;
  end;
end;
 
Risolto:
Codice:
procedure TForm1.ServerExecute(AContext: TIdContext);
var
FileName: string;
TFSFileIn: TFileStream;
begin
TThread.Synchronize(nil,
procedure
begin
Label1.Caption := 'Arriva qualcosa...';
Filename := Edit1.Text;
end);
TFSFileIn := TFileStream.Create(FileName, fmCreate);
try
AContext.Connection.IOHandler.ReadStream(TFSFileIn);
finally
TFSFileIn.Free;
end;
end;