formDecodeMultipart

fnstring[string] formDecodeMultipart(soup.multipart.Multipart multipart, string fileControlName, out string filename, out string contentType, out glib.bytes.Bytes file)

Decodes the "multipart/form-data" request in multipart.

this is a convenience method for the case when you have a single file upload control in a form. (Or when you don't have any file upload controls, but are still using "multipart/form-data" anyway.) Pass the name of the file upload control in file_control_name, and funcform_decode_multipart will extract the uploaded file data into filename, content_type, and file. All of the other form control data will be returned (as strings, as with funcform_decode in the returned [glib.hash_table.HashTable].

You may pass null for filename, content_type and/or file if you do not care about those fields. funcform_decode_multipart may also return null in those fields if the client did not provide that information. You must free the returned filename and content-type with funcGLib.free, and the returned file data with methodGlib.Bytes.unref.

If you have a form with more than one file upload control, you will need to decode it manually, using [soup.multipart.Multipart.newFromMessage] and [soup.multipart.Multipart.getPart].

Parameters

multiparta #SoupMultipart
fileControlNamethe name of the HTML file upload control
filenamereturn location for the name of the uploaded file
contentTypereturn location for the MIME type of the uploaded file
filereturn location for the uploaded file data

Returns

a hash table containing the name/value pairs (other than

file_control_name) from msg, which you can free with [glib.hash_table.HashTable.destroy]. On error, it will return null.