我试图将多部分请求发布到包含图像和包含该图像详细信息的数组的API。这个请求通过Postman工作,但在PHP中使用CURL实现它是很困难的。
标题非常基本 - 它们只包含先前从其他api调用中检索到的$ auth_token。
$headers = array('Content-Type: multipart/form-data', 'Authorization-token: ' . $auth_token));
表单数据的实际主体如下所示 - CurlFile实例化如下,并且数组包含有关文件的信息
$fields = array(
"data" => new CurlFile('C://images/15.jpg', 'image/jpg', '15.jpg'),
"entityFile" => array(
"fileTypeID"=> "server generated id",
"fileSize"=> 23453,
"entityID"=> "another server generated id",
"fileDateUtc"=> "2018-02-26T00:00:00",
"fileName"=> "15",
"fileExtension"=> "jpg"
)
);
最后,我为要发送的数据设置选项
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
我还尝试将图像附加为base64编码的字符串,但服务器上的图像不会更改。
我的问题是我的$ fields数组是否有任何明显错误可能导致它失败?我怀疑实际文件可能有问题,但很难确定返回的实际错误是......
The requested URL returned error: 400 Bad Request
谢谢