![]() |
idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich
Hallo Zusammen
Ich habe ein merkwürdiges problem... In meinem Code, poste ich Strings und Dateien an ein php script. Für die Strings mache ich dies wie folgt:
Delphi-Quellcode:
Dieser Code kann ich problemlos mehrmals ausführen, klappt immer...var data:TStringList; ... data := TStringList.Create; data.values['value1']:=zeit; data.values['value2']:=farbe; data.values['value3']:=link; IdHTTP1.post('http://.../meinFile.php?function=new',data); data.free; Sobald ich jedoch folgenden Code ausgeführt habe:
Delphi-Quellcode:
Funktionieren beide nicht mehr.var data: TIdMultiPartFormDataStream; ....... data := TIdMultiPartFormDataStream.Create; data.AddFile('upload_img_1',Form1.savepath+'\images\mini\'+filename, 'image/jpeg'); data.AddFile('upload_img_2',Form1.savepath+'\images\large\'+filename, 'image/jpeg'); data.Position := 0; IdHTTP1.post('http://.../meinFile.php?function=image',data); data.free Beim PHP-File kommen keine Daten mehr an. Woran kann das liegen? Die übergebenen Variablen, Pfade, Dateinamen etc stimmen alle. Diese sind also nicht leer. Es muss meiner Meinung nach am Post. liegen Hoffe ihr könnt mir helfen... Danke |
AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich
Nochwas...
ich erhalte folgende Fehlermeldung
Code:
Selbstverstädnlich für jeden übergebenen Value...
[14-Feb-2013 13:32:04] PHP Notice: Undefined index: value_xyz in file.php on line 45
Bei Line 45 sieht der PHP Code wie folgt aus:
Code:
Es ist stets reproduziertbar.
$link = $_POST['value_xyz'];
Sobald ich das erstemal ein bild gesendet habe in meiner app, funktioniert das senden des textes nicht mehr. App neustarten und dann gehts wieder einmal. |
AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich
So, problem gelöst.
Ich habe in meiner Upload Funktion einfach eine neue idHTTP instanz erstellt
Delphi-Quellcode:
Nun klappt es, würde mich aber dennoch interessieren, weshalb es mit nur einer Instanz nicht geht
var
myInternet:TIDHTTP; .. . |
AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich
Am besten du schaust mal was du beim Aufruf von meinFile.php?function=image vom Server erhältst. (via WireShark)
Ich könnte mir vorstellen, dass eine Session/Cookie erzeugt wird, wenn meinFile.php?function=new aufgerufen wird, in welcher dann der Bearbeitungsvorgang für das/die Bilder beginnt. Beim abschließen und senden der Daten an meinFile.php?function=image wird die Sitzungsinformation dann wieder benötigt. Wenn nun ein weiteres Bild bearbeitet werden soll, wird eine neue Sitzungsinformation erzeugt, vorher aber geprüft ob nicht schon eine existiert. Da diese schon existiert, wird auf die vorherige Sitzung umgeleitet. Normalerweise kümmert sich am Ende eines Vorgangs wahrscheinlich ein Javascript o.ä. darum dies zu bereinigen. Du kannst ja mal folgendes Probieren:
Delphi-Quellcode:
Das sind alles nur Spekulationen, vielleicht liegt auch ein Fehler im PHP-Script vor (z.B. mit Browser testen)
with myInternet do
begin // Alle Headerinformationen (wie z.B. Referer) entfernen Request.Clear; // Alle Cookies entfernen CookieManager.CookieCollection.Clear; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 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