Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Indy 9 TIdMultiPartFormDataStream.AddObject macht Probleme

  Alt 1. Jun 2006, 15:28
Ich führe folgenden Aufruf durch:
AddObject(AFieldName, 'application/octet-stream', AStream, AFilename); Weil man bei AddObject ja einen Filename übergibt und application/octet-stream als Datentyp hätte ich erwartet diese Daten würden dann im PHP auf dem Server in $_FILES landen.

Aber nöööö das landet als einfaches Feld in $_POST und ist dort natürlich nicht in Binärform sondern als MIME kodiert. Ich wills aber als Datei in $_FILES haben.

Soweit ich sagen kann muss es am TIdMultiPartFormDataStream liegen bzw. der Art wie AddObject verwendet wird.

EDIT: Jetzt kommt der Hammer! Der selbe Aufruf von AddObject funktioniert an anderer Stelle im selben Programm fehlerfrei. Einziger Unterschied: Wenn AStream vom Typ TStringStream ist, landet das Ganze als normale $_POST-Variable im PHP. Ist AStream aber ein TMemoryStream oder ein TFileStream, dann als Binärdatei im $_FILES im PHP. Das ist doch zum Mäusemelken

Noch ein EDIT: Jetzt wirds noch verrückter. Der letzte Parameter (AFilename) scheint den Ausschlag zu geben. Auch bei AddObject muss der anscheinend auf eine existierende Datei verweisen. Egal ob AStream ein FileStream auf diese Datei ist oder nicht. Sobald AFilename auf eine existierende Datei verweist wird der Inhalt von AStream als Datei verschickt und nicht als Post-Variable. Da kann ich auch Application.Exename einsetzen, ist vollkommen egal. Hauptsache die Datei ist vorhanden. So ein Unfug :-/
  Mit Zitat antworten Zitat