AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich
Thema durchsuchen
Ansicht
Themen-Optionen

idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich

Ein Thema von hedie · begonnen am 14. Feb 2013 · letzter Beitrag vom 14. Feb 2013
Antwort Antwort
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich

  Alt 14. Feb 2013, 12:33
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:

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;
Dieser Code kann ich problemlos mehrmals ausführen, klappt immer...

Sobald ich jedoch folgenden Code ausgeführt habe:

Delphi-Quellcode:

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
Funktionieren beide nicht mehr.

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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#2

AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich

  Alt 14. Feb 2013, 13:35
Nochwas...

ich erhalte folgende Fehlermeldung

Code:
[14-Feb-2013 13:32:04] PHP Notice: Undefined index: value_xyz in file.php on line 45
Selbstverstädnlich für jeden übergebenen Value...

Bei Line 45 sieht der PHP Code wie folgt aus:

Code:
$link = $_POST['value_xyz'];
Es ist stets reproduziertbar.

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.
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich

  Alt 14. Feb 2013, 14:08
So, problem gelöst.

Ich habe in meiner Upload Funktion einfach eine neue idHTTP instanz erstellt

Delphi-Quellcode:
var
myInternet:TIDHTTP;
..
.
Nun klappt es, würde mich aber dennoch interessieren, weshalb es mit nur einer Instanz nicht geht
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

AW: idhttp.post nach TIdMultiPartFormDataStream nicht mehr korrekt möglich

  Alt 14. Feb 2013, 20:16
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:
  with myInternet do
  begin
    // Alle Headerinformationen (wie z.B. Referer) entfernen
    Request.Clear;

    // Alle Cookies entfernen
    CookieManager.CookieCollection.Clear;
  end;
Das sind alles nur Spekulationen, vielleicht liegt auch ein Fehler im PHP-Script vor (z.B. mit Browser testen)
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz