Thema: Delphi eine Datei hochlade

Einzelnen Beitrag anzeigen

st18061974

Registriert seit: 5. Feb 2003
52 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: eine Datei hochlade

  Alt 7. Nov 2004, 13:38
Ist der Code aus der Code-Libary --> TCP/IP/LAN

nur das ich nicht die Open- und Save-Dialoge nutze sonder direkt die beiden Dateien eingetragen habe.

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
begin
  .
  .
  .

  with IdTCPClient1 do
  begin
    fs := TFileStream.Create('Dateiname1', fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen
    Connect; //und Verbindung herstellen
    try
      OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden
      try
        WriteStream(fs, true, true, 0); {das 2. true ist wichtig!, da es bewirkt, dass die Größe des Streams mittels WriteInteger zuerst verschickt wird} 
        CloseWriteBuffer;
      except
        CancelWriteBuffer;
        raise;
      end;
    finally
      Disconnect;
      fs.Free;
    end;
  end;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  fs: TFileStream;
  SizeOfIncomingStream: integer;
begin
  fs := TFileStream.Create('Dateiname2', fmCreate or fmShareExclusive);
  with AThread.Connection do
    try
      SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen
      ReadStream(fs, SizeOfIncomingStream); //und übergeben
    finally
      Disconnect;
      fs.Free;
    end;
end;
  Mit Zitat antworten Zitat