Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi eine Datei hochlade (https://www.delphipraxis.net/33449-eine-datei-hochlade.html)

st18061974 7. Nov 2004 11:55


eine Datei hochlade
 
Hi,

ich möchte in regelmäßigen Abständen (bpsw.:15 min) eine Datei auf meinen Webspace hochladen. Nur leider habe ich keine Ahnung wie ich das anstellen soll.

Ich habe schon so ein paar Versuche unternommen --> Erfolglos.

Könnt Ihr mir bitte ein bis zwei kleine Tipps geben wie ich das anstellen muß.

Vielen Dank im vorraus

MfG

Die Muhkuh 7. Nov 2004 11:58

Re: eine Datei hochlade
 
Zitat:

Zitat von st18061974
Könnt Ihr mir bitte ein bis zwei kleine Tipps geben wie ich das anstellen muß.

1. Indys
2. Timer

*MFG*

Manu :hi:

StefanDP 7. Nov 2004 11:58

Re: eine Datei hochlade
 
indy komponenten!

st18061974 7. Nov 2004 12:09

Re: eine Datei hochlade
 
Mit den Indy's habe ich es schon probiert. Das gibt es hier in der Code-Libary etwas. Aber da kommt immer eine Fehlermeldung -->

Socket-Fehler # 10049
Die angeforderte Adresse kann nicht zugewiesen werden

Und in meinem Form steht der Zeiger dann an dieser Zeile -->

with IdTCPClient1 do

Meflin 7. Nov 2004 12:26

Re: eine Datei hochlade
 
tja da wissen jetzt wirklich alle wo das problem liegt. da wirst du uns schon etwas mehr code gönnen müssen ;-)

st18061974 7. Nov 2004 12:38

Re: eine Datei hochlade
 
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;

Meflin 7. Nov 2004 12:40

Re: eine Datei hochlade
 
da ber der fehler erst in der with zeile auftritt brauchen wir genau den code den du rausgekürzt hast. ich vermute fast dass du die zugangsdaten fehlerhaft angibst.
btw: bitte verwende für delphi code auch die delphi tags [(/)delphi]

st18061974 7. Nov 2004 12:48

Re: eine Datei hochlade
 
Nein, da steht nichts mehr dazu. Da ist nur etwas zu der Datei die hochgeladen werden soll.

Ich habe einfach nur die beiden Komponenten draufgelegt, den Code kopiert und da bin ich.

Meflin 7. Nov 2004 12:51

Re: eine Datei hochlade
 
ach man :wall: jetzt fällts mir auf:
du wirst mit TCP keine datei auf deinen webserver hochladen können... du brauchst FTP!

st18061974 7. Nov 2004 13:11

Re: eine Datei hochlade
 
Genau, so gehts ganz leicht.

Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz