form:AddStream(name, len, func[, userdata, type, filename, headers])
form:AddStream()
wird zum Anhängen einer Datenstromsektion
verwendet, wenn ein HTTP-POST mit Multipart/Formdata erstellt wird
(manchmal als RFC 2388-Posts bezeichnet). Übergeben Sie das Formularelement
als Parameter an #CURLOPT_HTTPPOST
, nachdem Sie alle Sektionen hinzugefügt
haben, die Sie einschließen möchten. Siehe easy:SetOpt_HTTPPost für Details.
Sie müssen form:Free() aufrufen, nachdem der Formularbeitrag erstellt wurde, um die Ressourcen freizugeben.
Die Verwendung von POST mit HTTP 1.1 impliziert die Verwendung eines
"Expect: 100-continue" Headers. Sie können diesen Header mit
#CURLOPT_HTTPHEADER
wie gewohnt deaktivieren.
Erstens gibt es einige Grundlagen, die Sie über
Multipart/Formdata-Post verstehen müssen. Jeder Teil besteht aus
mindestens einem NAME-
und einem CONTENTS
-Teil. Wenn der Teil für den
Datei-Upload gemacht wird, gibt es auch einen gespeicherten
CONTENT-TYPE
und einen FILENAME
(Dateiname). Im Folgenden werden wir
besprechen, welche Optionen Sie verwenden, um diese Eigenschaften in den
Teilen festzulegen, die Sie Ihrem Beitrag hinzufügen möchten.
Das Argument name
muss eine Zeichenkette sein, die den Namen dieses Teils
liefert. Der Name darf keine nullwertigen Bytes enthalten.
Der Parameter len
muss die Anzahl der hinzuzufügenden Bytes enthalten. Der
Parameter func
muss ein Callback sein. Die Callback-Funktion wird aufgerufen,
um die tatsächlichen Daten zum Hinzufügen bereitzustellen. Diese
Callback-Funktion wird wiederholt aufgerufen, bis es genau len
Bytes
zurückgegeben hat. Die Callback-Funktion verhält sich genau wie der Befehl
#CURLOPT_READFUNCTION
. Siehe easy:SetOpt_ReadFunction für Details.
Wenn Sie das optionale Argument userdata
übergeben, wird der Wert, der von
jedem Typ sein kann, als zweiter Parameter an Ihre Callback-Funktion übergeben.
Das optionale Argument type
kann verwendet werden, um den CONTENT-Typ für das
Teil festzulegen. Das optionale Argument filename
kann verwendet werden, um
einen gewünschten Dateinamen für die Datenströme festzulegen. Das optionale
Argument headers
kann verwendet werden, um zusätzliche Header für die
POST-Sektion des Formulars anzugeben. Dies erfordert eine Tabelle mit einer Liste
und hängt die Liste der Headers an die von libcurl automatisch erzeugten an.