Indy post Problem
hallo ...
ich möchte ein bild an den bilderhost www.imagecrate.de senden. die erlaubnis des hosters habe ich dafür. jetzt stellt sich folgendes problem: DataStream := TIdMultiPartFormDataStream.Create; DataStream.AddFile('file', Datei, 'multipart/form-data'); stringvar := idHTTP.Post('http://www.imagecrate.de/index.php?page=upload', DataStream); .... führe ich diesen code aus, komme ich lediglich wieder auf die seite inde.php und die datei ist weder hochgeladen, noch kann ich den link auslesen, da kein source vorhanden ist. bei anderen scripts funktioniert das jedoch super - einziger unterschied: es gibt kein "?page=upload", was daher anscheinend das problem mit indy verursacht. handleredirects ist an und auch die request daten habe ich angepasst (host, referer ect.) - trotzdem bleibt der erfolg aus :< ... wer kann mir helfen ? es muss doch zu machen sein ein bild dort hochzuladen und die seite mit den links zu bekommen. |
Re: Indy post Problem
Hallo.
Kenne diesen Image-Dienst nicht, daher kann ich darüber nichts berichten. Problematisch sehe ich aber die GET/POST-Mischung (die bei manchen HTML-Formularen auch Probleme macht). Ein GET-Request sieht so aus: http://www.example.com/script.php?foo=bar Bei PHP hast du dann $_GET['foo'] = 'bar'. Bei einem POST-Request werden die Daten ja nicht über die Request-URL an den Server gereicht. In PHP wäre dann die Variable $_POST['foo'] = 'bar' und nicht $_GET['foo'] gesetzt. Führst du nun aber einen POST-Request mit http://www.imagecrate.de/index.php?page=upload durch, hast du GET und POST in einem. Ich weiß nicht, ob Indy oder der Server damit durcheinander kommen. Wie sieht es bei dem Image-Dienst aus? Machen die in ihren HTML-Formular das selbe? Probiere doch mal, page=upload als POST anstelle von GET mitzusenden. Du würdest also ein POST-Request an http://www.imagecrate.de/index.php senden. Wenn das nicht geht, lade dir einen Packet-Logger (ich empfehle SmartSniff = Freeware) herunter, starte das Logging (vorher internetaktive Programme wie ICQ, Outlook schließen) und poste ein Bild über den Browser. Schau dir dann mal genau das Datenpaket an und speichere es. Wie sieht das Request genau aus? Wie sieht die Response aus? (Enthält das Response-Paket ggf. eine HTTP-Redirect Zeile? Sniffe ggf. auch den Datentransfer deines (bisher nicht funktionierenden) Programmes und vergleiche es mit dem Soll-Ergebnis des Browser-Uploads. Du siehst bestimmt schnell, woran es liegen könnte und wo Unterschiede sind. Gruß blackdrake |
Re: Indy post Problem
Hi.
Zitat:
Hänge aber mal ein
Delphi-Quellcode:
an. Das wird zumindest beim manuellen Senden mitgeschickt.
DataStream.AddFormField('upload', '1');
Gruß, Björn |
Re: Indy post Problem
Zitat:
Allgemein sollte man aber die künstliche Anfrage möglichst realitätsgetreu (siehe TCP/IP-Sniffer Hinweis) gestalten, falls sich auf der Serverseite die Sicherheits-/SPAM-Vorkehrungen verschärfen. Zitat:
Gruß blackdrake |
Re: Indy post Problem
Hallo.
Zitat:
Zitat:
Ich werde mir morgen früh den Sniffer besorgen und mal sehen, ob ich weiter komme. Danke für die Hilfe :hi: Gruß. |
Re: Indy post Problem
Habs hinbekommen.
Der Server mag als ContentType wohl kein 'multipart/form-data', von wegen nicht unterstütztes Dateiformat. Nimm einfach 'image/jpeg', dann gehts. ;) |
Re: Indy post Problem
Und wenn es kein JPEG ist (sondern PNG, GIF)? Vielleicht hat Indy kein Filename mitgegeben, mitdessen der Server die Erweiterung ".jp(e)g" ablesen konnte?
|
Re: Indy post Problem
Zitat:
|
Re: Indy post Problem
Zitat:
|
Re: Indy post Problem
Wer sagt, dass der Browser 'multipart/form-data' sendet?
Habe eben ein gif hochgeladen und es wurde 'image/gif' gesendet, allgemein lässt sich höchstwahrscheinlich also sagen 'image/' + erlaubter Dateityp. Dieses Verhalten ist auch das einzig (mir) einleuchtende, denn wie sonst soll der Server überprüfen, ob es sich bei dem gesendeten Inhalt um ein erlaubtes Dateiformat handelt? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 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