Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi User Upload (https://www.delphipraxis.net/137836-user-upload.html)

RedShakal 29. Jul 2009 12:08


User Upload
 
Hallo ich hab ne kurze Frage: ich möchte in meine Map Datenbank einen "User Upload" einbauen. Darin soll der User 2 Felder kriegen:

Kartenname und Author. Zum Server wird dann folgendes gesendet:

Kartenname|Author|Datum+Zeit -> Server übernimmt weiß bescheid fürs nächste mal

Jetzt das Problem: Die Daten liegen auf einen FTP und ich will die FTP daten nicht in das Programm schreiben aus angst jemand könnte sie mit WireShark rausrippen und unfug damit machen. Ausserdem stehe ich vor dem Problem das ich gern das Datum / Uhrzeit vom Server nehmen würde, damit Clients nicht absichtlich das Datum manipulieren können lokal.

Wie stelle ich das am dümmsten an? evtl mit einem PHP script das den Upload per Parameter annimmt und auswertet? Leider kann ich kein PHP. Bin für Vorschläge offen


Edit:
Ich habe gerade diesen Lösungsansatz gefunden und werde ihn mal ausprobieren:

Zitat:

Zitat von Catbytes
Wenn Du schon die Indy-Komponenten benutzt, warum nimmst Du nicht "Put"?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  PutDataStream: TStringStream;
  Datei: TFileStream;
  Stream: TStream;
begin
  if (OpenDialog1.Execute) then
    Datei := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  Stream := TStream.Create;
  Stream := Datei;
  PutDataStream := TStringStream.Create('');
  try
    IdHTTP1.Put('http://wasauchimmer.de', Stream, PutDataStream);
    Memo1.Text := PutDataStream.DataString;
  finally
    PutDataStream.Free;
    Stream.Free;
  end;
end;
In PHP sieht das ganze dann so aus, um mit PUT-Dateien zu empfangen:

Code:
/* PUT Daten kommen in den stdin Stream */
$putdata = fopen("php://stdin","r");

/* Eine Datei zum Schreiben öffnen */
$now = date("Y-m-d - H_i_s");
$fp = fopen("put/".$now.".txt","w");

/* Jeweils 1kB Daten lesen und
   in die Datei schreiben */
while ($data = fread($putdata,1024))
  fwrite($fp,$data);

/* Die Streams schließen */
fclose($fp);
fclose($putdata);
Pfad (put/) halt anpassen.


Klaus01 29. Jul 2009 12:36

Re: User Upload
 
Zitat:

Die Daten liegen auf einen FTP und ich will die FTP daten nicht in das Programm schreiben aus angst jemand könnte sie mit WireShark rausrippen
Es ist egal, ob Du die Daten auf die Platte oder direkt in den Speicher schreibst
über eine Netzwerkschnittstelle müssen sie und da kann man sie mit Wireshark mitlesen.
Die Userdaten (Username und Password) werden im übrigen auch im Klartext übertragen.

Wenn Du eine unabhängige Uhrzeit haben möchtest würde ich sie mir
von einem der öffentlichen NTP-Servern holen.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 Uhr.

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