AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Daten - Upload - MySQL
Thema durchsuchen
Ansicht
Themen-Optionen

Daten - Upload - MySQL

Ein Thema von user0815 · begonnen am 19. Jun 2008 · letzter Beitrag vom 23. Jun 2008
Antwort Antwort
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#1

Daten - Upload - MySQL

  Alt 19. Jun 2008, 10:10
Hi,
ich komme nicht weiter. Ich will Daten von Ort X abrufen und ins Internet stellen. An Ort Y soll auf diese Daten zugegriffen werden. Die Anzahl der Daten kann variieren, also von einem Datensatz bis > 1000 DS.

Habe mir vorgestellt das ich die Daten an Ort X via INDY IdFTP als Datei ins Netz stelle, dann ein PHP Script anstosse das die Datei nimmt, ausliest & die Daten in die MySQL DB schreibt. Anschließend wird die Datei auf dem Server in ein anderes Verzeichnis kopiert.

An Ort Y kann jetzt der Import erfolgen. Dazu wird eine PHP WEB Seite aufgerufen, ein Datum übergeben und alle Daten nach diesem Zeitraum werden auf dem Server in eine Datei geschrieben. Der Download erfolgt via UrlDownloadToFile, Lokal importieren usw...

Das funktioniert !

Was ich nicht wollte:
Ich kann mit dem Netzwerksniffer Packetyzer (http://www.paglo.com/opensource/packetyzer) die FTP Verbindungdaten der INDY IdFTP in Klarschrift lesen: TEST, kannichlesen, ftp.adresse.de


IdFTP.Username := 'TEST';
IdFTP.Password := 'kannichlesen';
IdFTP.Host := 'ftp.adresse.de';


Meine Frage: Ist es überhaupt sinnvoll den Datenupload so durchzuführen oder sollte man die Daten anders übertragen ?


Danke für ne Anregung / einen Denkanstoss
user0815
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Daten - Upload - MySQL

  Alt 21. Jun 2008, 23:02
Wenn du es selber steuern kannst, nimm eine sichere Methode. Du kannst auch Verschlüsselungsverfahren benutzen. Das Transportprotokoll (soweit FTP) solltest du abstrahieren. Ggf. durch SFTP, FTPS oder SCP ersetzen.

Ein POST-Request zum hochladen ginge auch.
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Daten - Upload - MySQL

  Alt 23. Jun 2008, 13:09
Habe das ganze jetzt mit einem Post Request umgesetzt.

Delphi-Quellcode:
uses
  IdMultipartFormData;

...

procedure TForm1.Button1Click(Sender: TObject);
var
  filename: TFileName;
  Data : TIDMultiPartFormDataStream;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'test.txt'; // Anwendungsverzeichnis

  if FileExists(filename) then
  begin

    try
      Data := TIdMultiPartFormDataStream.Create;
      Data.AddFile('userfile', filename, 'txt');
      Data.Position := 0;

      Memo1.Lines.Text := IdHTTP.Post('http://localhost/eigenesverzeichnis/test.php', Data);
    finally
      Data.Free;
    end;

  end;
end;
test.php Code

Code:
<?php

/*   
   In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead of $_FILES.

   basename
   ==========================================================================================
   $path = "/home/httpd/html/index.php";
   $file = basename($path);                 // $file is set to "index.php"
   $file = basename($path, ".php");          // $file is set to "index"
   
   $_FILES
   ==========================================================================================    
   $_FILES['thefile']['name']    
   Der Name der Datei, wie sie auf dem Clientsystem genannt wurde. Eventuelle Verzeichnisangaben werden nicht mitgesendet.
    
   $_FILES['thefile']['tmp_name']    
   Pfad und Name der temporären Datei, wie sie im Filesystem des Servers zu finden ist
   (meistens in der Form /tmp/php234lksdaflk) - diese Datei wird am Skriptende wieder gelöscht.
    
   $_FILES['thefile']['size']    
   Die Größe der Datei in Bytes
   
   $_FILES['thefile']['type']
   Der Mime-Type der Datei, wie der Client sie lieferte (z.B. image/gif).
   
   $_FILES['userfile']['error']   
   The error code associated with this file upload. This element was added in PHP 4.2.0 
*/
    
   $uploaddir = getcwd() . "/upload/"; // getcwd = Gets the current working directory
   $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
   
   echo '<pre>';
   
   if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
   {
      echo "File is valid, and was successfully uploaded.\n";
   } 
   else
   {
      echo "Possible file upload attack!\n";
   }
   
   echo 'Here is some more debugging info:\n';
   print_r($_FILES);
   
   print "</pre>";
?>
Memo Feld Ausgabe

Code:
<pre>File is valid, and was successfully uploaded.
Here is some more debugging info:\nArray
(
    [userfile] => Array
        (
            [name] => test.txt
            [type] => txt
            [tmp_name] => D:\xampp\tmp\phpFE.tmp
            [error] => 0
            [size] => 89019
        )

)
</pre>
Greetz
user0815
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Daten - Upload - MySQL

  Alt 23. Jun 2008, 15:00
Ggf. würde sich noch eine Absenderprüfung bzw. eine Prüfung der Daten anbieten. Über Post kann dir schließlich jeder was schicken.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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