Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   POST via XMLHTTP (https://www.delphipraxis.net/154083-post-via-xmlhttp.html)

Myribo 27. Aug 2010 01:14

POST via XMLHTTP
 
Hallo liebe Gemeinde!

Ich habe mal eine kleine Frage an euch.

Und zwar: Ich muss in meiner Anwendung mehrere Dateien via HTTPS auslesen. Da ich es mit Indy leider nicht zum Laufen bekam, habe ich es jetzt so gelöst:

Delphi-Quellcode:
...
var req:IXMLHTTPRequest;
begin
 req:=CoXMLHTTP.Create;
 req.open('GET',url,False,EmptyParam,EmptyParam);
 req.send(EmptyParam);

 Result:=req.responseText;

end;
Das funktioniert auch wunderbar. Nun möchte ich aber eine Datei per POST an den Server (ebenfalls per HTTPS) an den Server senden.
Ich habe auch schon 1-2 Schnipsel gefunden, allerdings ist mein Problem, dass ich den Daten ja einen (Feld-)Namen geben muss (damit der Server Bescheid weiß).
Quasi als wenn ich die Daten über ein Formular mit...

Code:
<form method="POST" action="..." enctype="multipart/form-data">
<input type="file" name="meinedatei">
<input type="submit">
</form>
...absende, wobei "meinedatei" der Name ist.
Meine Frage ist jetzt: Wie kann ich das am einfachsten machen? Ja, ich weiß, dass es mit Indy evtl einfacher wäre. Das funktioniert aber wie gesagt nicht, also möchte ich es jetzt so machen ;)

Schönen Dank für's Lesen und schönen Gruß,
Myribo

Bernhard Geyer 27. Aug 2010 06:27

AW: POST via XMLHTTP
 
Geht so nicht. Der Formular-Feldtyp "file" kann so seit gefühlten 15 Jahren keinen Programmiertechnisch vorbelegten Werte haben.

Zitat:

Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von aktuellen Browsern aus Sicherheitsgründen nicht unterstützt.

himitsu 27. Aug 2010 09:16

AW: POST via XMLHTTP
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1045409)
wird von aktuellen Browsern aus Sicherheitsgründen nicht unterstützt.

Wenn man es aber nicht via "Browser" versendet, dann geht es dennoch.

Aber k.A. wie man das mit dem mir unbekannten CoXMLHTTP machen kann.

shmia 30. Aug 2010 12:13

AW: POST via XMLHTTP
 
Delphi-Quellcode:
...
var req:IXMLHTTPRequest;
begin
 req:=CoXMLHTTP.Create;
 req.open('GET',url,False,EmptyParam,EmptyParam);
 req.setRequestHeader('meinedatei', 'C:\test.txt'); // <==
 req.send(EmptyParam);

 Result:=req.responseText;

end;
PS: Es reicht wohl nicht aus, nur den Dateinamen im Header bekanntzugeben.
Der eigentliche Dateiinhalt muss im Body (evtl. auch Mime-Codiert) übermittelt werden.

mkinzler 30. Aug 2010 12:14

AW: POST via XMLHTTP
 
Wobei man req wieder freigeben sollte

himitsu 30. Aug 2010 12:16

AW: POST via XMLHTTP
 
Das ist ein Interface :zwinker:

Myribo 30. Aug 2010 19:56

AW: POST via XMLHTTP
 
aaah, wunderbar... vielen dank an shmia! sieht recht simpel und vielversprechend aus! trotzdem natürlich auch vielen dank an die anderen. ich werd aufgrund der anregungen mal noch nen bisschen rumbasteln...


vielen dank und schönen gruß,
myribo


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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