-
-
Notifications
You must be signed in to change notification settings - Fork 11
libcURL.MultipartForm.AddElement
libcURL.MultipartForm.AddElement
Function AddElement(Name As String, Value As String, AdditionalHeaders As libcURL.ListPtr = Nil) As Boolean
Function AddElement(Name As String, Value As FolderItem, ContentType As String = "", AdditionalHeaders As libcURL.ListPtr = Nil) As Boolean
Function AddElement(Name As String, ValueStream As Readable, ValueSize As Integer, Filename As String = "", ContentType As String = "", AdditionalHeaders As libcURL.ListPtr = Nil) As Boolean
Function AddElement(Name As String, ByRef Value As MemoryBlock, Filename As String, ContentType As String = "", AdditionalHeaders As libcURL.ListPtr = Nil) As Boolean| Name | Type | Comment |
|---|---|---|
| Name | String | The name of the form element (i.e. the name attribute of the HTML <input> tag) |
| Value | String | The content of the element |
| AdditionalHeaders | ListPtr | Optional. Additional MIME headers to include in the element. |
| Name | Type | Comment |
|---|---|---|
| Name | String | The name of the form element (i.e. the name attribute of the HTML <input> tag) |
| Value | FolderItem | The file to encode in the form |
| ContentType | String | Optional. The Content-Type of the file (e.g. text/html.) |
| AdditionalHeaders | ListPtr | Optional. Additional MIME headers to include in the element. |
| Name | Type | Comment |
|---|---|---|
| Name | String | The name of the form element (i.e. the name attribute of the HTML <input> tag) |
| ValueStream | Readable | The stream from which to read the contents of the form element when they are actually needed. |
| ValueSize | Integer | The total number of bytes to read from ValueStream. |
| Filename | String | Optional. If specified then the form element is encoded as a file element. |
| ContentType | String | Optional. The Content-Type of the file (e.g. text/html.) This parameter is ignored if Filename is not specified. |
| AdditionalHeaders | ListPtr | Optional. Additional MIME headers to include in the element. |
| Name | Type | Comment |
|---|---|---|
| Name | String | The name of the form element (i.e. the name attribute of the HTML <input> tag) |
| Value | MemoryBlock | A pointer to a memory block containing the value. Must remain valid for the duration of all transfers. |
| Filename | String | The file name to use. While not an optional parameter, you may pass the empty string if the element should not be encoded as a file element. |
| ContentType | String | Optional. The Content-Type of the file (e.g. text/html.) This parameter is ignored if Filename is the empty string. |
| AdditionalHeaders | ListPtr | Optional. Additional MIME headers to include in the element. |
Returns True if the operation succeeded. Check MultipartForm.LastError for the error number if this method returns False.
Pass a string to set a string element or a folderitem to set a file upload element. You may also pass a Readable object to have libcURL read from when the form element contents are needed, or a pointer to a memory buffer that already contains file data.
You may add custom MIME headers in the form element by specifying the AdditionalHeaders parameter.
This example POSTs an HTTP form containing a string part, a file part with additional MIME headers, a MemoryBlock part, and a Readable part:
Dim form As New libcURL.MultipartForm
Call form.AddElement("Username", "Bob")
Dim mimeheaders As New libcURL.ListPtr
Call mimeheaders.Append("X-Custom-Header: CustomValue")
Dim file As FolderItem = GetOpenFolderItem("")
Call form.AddElement("Upload", file, "", mimeheaders)
Dim testdata As MemoryBlock = "This is a test buffer."
Call form.AddElement("Buffer", testdata, "buffer.txt", "text/plain")
Dim stream As New BinaryStream(testdata)
Call form.AddElement("Stream", stream, testdata.Size)
Dim c As New cURLClient
If c.Post("http://www.example.com/submit.php", form) Then
MsgBox("Success!")
End IfWiki home | Project page | Bugs | Become a sponsor
Text and code examples are Copyright ©2014-26 Andrew Lambert, offered under the CC BY-SA 3.0 License.