![]() |
idHTTP1.Post Problem
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:
Hier meine php Datei
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;
Code:
Fehlermeldung: No Data to read.
<?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"; } ?> 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. |
Re: idHTTP1.Post Problem
Guten Abend,
versuche es 'mal mit dem MemoryStream.
Delphi-Quellcode:
[edit] Vielleicht ist dieser
//StringList := TStringList.Create;
MStream := TMemoryStream.create; Data := TIdMultiPartFormDataStream.Create; try Memo1.lines.saveToStream(MStream); MStream.Position:=0; //StringList.AddObject('Test.txt',StringList); // Data.AddObject('userfile','txt' , MStream, '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; MStream.free; end; ![]() Grüße Klaus |
Re: idHTTP1.Post Problem
Danke dir.
Es läuft. Das komische daran ist. Ich habe mit MStream auch versucht gehabt. Allerdings so oft umgeschrieben daß ich kaum noch nachvollziehen kann wo ich den Fehler gemacht habe. Ich glaube das ist das Hauptproblem: Memo1.lines.saveToStream(MStream); Damit wird der ganze Inhalt übernommen. Na ja. Ich bedanke mich sehr. Es hat mir sehr geholfen. Dazu noch verdammt schnell. Danke noch Mal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz