file_control_name) from msg, which you can free with [glib.hash_table.HashTable.destroy]. On error, it will return null.
formDecodeMultipart
string[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
multipart | a #SoupMultipart |
fileControlName | the name of the HTML file upload control |
filename | return location for the name of the uploaded file |
contentType | return location for the MIME type of the uploaded file |
file | return location for the uploaded file data |