Thema: Delphi idHTTP1.Post Problem

Einzelnen Beitrag anzeigen

IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
80 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

idHTTP1.Post Problem

  Alt 4. Jan 2009, 19:44
Hallo Leute.
Ich beschäftige mich nicht allzulange mit Delphi, bitte um Geduld.

Ich versuche den Inhalt einer Memo1 auf den Server als Datei zu laden.
Leider komme ich nicht weiter. Habe schon SuFu benutzt. Nichts passendes gefunden.
Sobald ich die Datei local erstelle und dann sende geht es einwandfrei.
Das kann ich aber nicht anwenden. Es muß direkt von der Memo uploadet und als Datei gespeichert werden.
Momentan kriege ich die Meldung: No data to read.
Drücke ich auf fortsetzen ist die Datei auf dem Server. Also sollte die Übertragung eigentlich richtig sein.
Mit den Streams habe mich irgendwie festgefahren.


Hier mein CODE
Delphi-Quellcode:
    StringList := TStringList.Create;
    Data := TIdMultiPartFormDataStream.Create;
    try
StringList.Add(Memo1.Text);
//StringList.AddObject('Test.txt',StringList); //
      Data.AddObject('userfile','txt' , StringList, 'Test.txt');
      Data.Position := 0;
       if InternetGetConnectedState(nil, 0) then
       Transfer := idHTTP1.Post('http://Meine_Adresse_mit_dem_Script/update.php', Data);
    finally
      StringList.Free;
      Data.Free;
    end;
Hier meine php Datei

Code:
<?php

   $uploaddir = getcwd() . "/test/"; // getcwd = Gets the current working directory
   $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
   
   echo '<pre>';
   
   if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
   {
      echo "Data transfer successfully.\n";
   }
   else
   {
      echo "Possible file upload attack!\n";
   }
   
?>
Fehlermeldung: No Data to read.
Ich glaube zu wissen warum es so ist, kriege aber nicht gebacken.
Ich versuche zu senden obwohl mein Stream zu Ende ist glaube ich.
Falls Jemand mir helfen könnte am besten mit ein wenig Erklärung wäre es super.
Ich lerne autodidakt, also bitte nicht schimpfen. Für die Schule bin leider zu alt.
  Mit Zitat antworten Zitat