这是将照片从Unity发送到服务器的代码。 我需要发送:
这是我的代码的响应:
$_POST = []
$_FILES = [
0 => [
'name' => 'target_file'
'type' => 'application/octet-stream'..
]
1 => [
'name' => 'jpg'
'type' => 'text/plain'...
]
]
我需要获得:
$_POST = [
'type_object' => 'jpg'
]
$_FILES = [
'target_file' => [
'name' => 'tt3.jpg'
'type' => 'image/jpeg'..
]
]
这是我的代码:
// photo is saved to Texture2D tex
bytes = tex.EncodeToJPG();
List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
//form1 = target_file
formData.Add(new MultipartFormFileSection(form1, bytes));
//form2 = type_object
//req2 = "jpg"
formData.Add(new MultipartFormFileSection(form2, req2));
//siteAddress - "https://api...
UnityWebRequest www = UnityWebRequest.Post(siteAddress, formData);
www.chunkedTransfer = false;
yield return www.SendWebRequest();
答案 0 :(得分:1)
对于文件,您必须使用MultipartFormFileSection
的其他构造函数,并另外传递表单名和内容类型。像
// form1 = "ttf3"
// req2 = "jpg"
formData.Add(new MultipartFormFileSection("target_file", bytes, $"{form1}.{req2}", "image/jpg"));
通过将第二个文件设为MultipartFormFileSection
,将其视为具有字符串内容jpg
的附加文件。
对于简单的字符串值,您宁愿使用MultipartFormDataSection
。像
// req2 = "jpg"
formData.Add(new MultipartFormDataSection($"type_object={req2}"));
另请参见Sending a form to an HTTP server (POST)
中的示例注意:请在电话上键入内容,因此没有机会进行测试,但我希望这个主意会清楚