form:AddFile(name, path[, type, filename, headers])
form:AddFile()
wird verwendet, um eine Datei-Upload-Sektion beim
Erstellen eines Multipart/Formdata-HTTP-POST (Teilen/Formulardaten) (manchmal auch als
RFC 2388-ähnlichen Post bezeichnet) anzuhängen. Nachdem Sie alle
gewünschten Sektionen hinzugefügt haben, übergeben Sie den Form-Handle
als Parameter an #CURLOPT_HTTPPOST
. Siehe easy:SetOpt_HTTPPost für Details.
Sie müssen form:Free() aufrufen, nachdem der Form-Post 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 erstellt 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 Post hinzufügen möchten.
Das Argument name
muss eine Zeichenkette sein, die den Namen dieses
Elements liefert. Der Name darf keine nullwertigen Bytes enthalten.
Das Argument path
muss auf den Pfad eines Dateinamens gesetzt werden, der
hochgeladen werden soll. Libcurl setzt das Dateinamenfeld auf den Basisnamen
des angegebenen Dateinamens, liest den Content der Datei und übergibt ihn als
Daten und legt den Content-Typ fest, wenn die angegebene Datei mit einer der
intern bekannten Dateierweiterungen übereinstimmt. Die angegebene Upload-Datei
muss bereits zu Beginn des Uploads vollständig im Dateisystem vorhanden sein,
da libcurl zuvor die richtige Dateigröße lesen muss. Die angegebene Datei
muss beibehalten werden, bis die zugehörige Übertragung abgeschlossen ist.
Das optionale Argument type
kann verwendet werden, um den Content-Typ für den
Teil festzulegen. Das optionale Argument filename
kann verwendet werden,
um einen anderen Dateinamen als den von path
abgeleiteten für den Upload zu
verwenden. Mit dem optionalen Argument headers
können zusätzliche Header
für die POST-Sektion des Formulars angegeben werden. Dies erfordert eine Tabelle
mit einer Liste und hängt die Liste des Headers an die von libcurl automatisch
erzeugten an.