Einzelnen Beitrag anzeigen

Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: PHP-Script von Desktop-Anwendung aus anstoßen

  Alt 7. Okt 2020, 15:16
Danke für den Tipp, ist natürlich eleganter, alles in einem Rutsch zu erledigen.

Mit ziemlich viel googlen hab ich es jetz hinbekommen
Falls es später jemand interessiert hier mein Ansatz
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  filename: TFileName;
  Data : TIDMultiPartFormDataStream;
begin
  filename := 'liveresults.CSV';

  if FileExists(filename) then
    begin
      try
        Data := TIdMultiPartFormDataStream.Create;
        Data.AddFile('userfile', filename, 'csv');
        Data.Position := 0;
        Memo1.Lines.Text := IdHTTP1.Post('http://bla-bla/admin/test.php', Data);
      finally
        Data.Free;
      end;

    end;
end;
Und das dazugehörige PHP-Script:
Code:
<?php
//Dateiupload entgegennehmen
$uploaddir = getcwd() . "/upload/"; // getcwd = Gets the current working directory
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

//verschiebt hochgeladene Datei aus TMP-Verzeichnis ins Upload-Verzeichnis und setzt wieder den erwarteten Dateinamen
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
  {
  $HasUploaded = true;
  }
else
  {
  $HasUploaded = false;
  }

//wenn erfolgreich hochgeladen, weiterverarbeiten
if ($HasUploaded)
  {
  $i = 0;
  //Datei zum lesen öffnen
  $fp = fopen('upload/liveresults.CSV',"r");
  while (!feof($fp))
    {
    $i++;
    //Zeilenweise einlesen
    $str = fgets($fp,500);
    //Leerzeilen überspringen
    if ($str > "")
      {
      //Kontrollausgabe, ob alle Daten angekommen sind
      //hier muss später die Verarbeitung (=Einlesen in DB) eingefügt werden
      echo "Zeile " . $i . ": " . $str;
      }
    }
  }
else
  {
  echo"Datei konnte nicht hochgeladen werden";
  }
?>
  Mit Zitat antworten Zitat