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";
}
?>