0

所以我正在尝试使用一个名为Sky Biometry的 api ,用于面部检测和面部识别。该 api 接受 url 或 post 作为 MIME 类型。在这种情况下,我想直接将图片发布到 api,这是文档中的内容:

“注意:如果您想发布图像而不是指定 url,则对方法的请求必须形成为使用 POST 数据发送的 MIME 多部分消息。每个参数都应指定为单独的表单数据块。”

我已经尝试四处寻找示例,但还没有找到任何示例,如果有人可以帮助新手,将不胜感激。

天空生物测量文档

4

2 回答 2

0

这是使用 curl 发布值的示例结构,

$value1 = 'DATA 1;
$value2 = 'DATA 2';
$url = 'http://www.skybiometry.com/file/api/facedetection/example';
$fields = array(
                        'mimetype' => urlencode($value1),
                        'mimetype2' => urlencode($value2)
                );

//url-ify the data for the POST
$fields_string = '';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

希望这可以帮助你。

于 2013-04-10T14:59:51.610 回答
0

多部分消息实际上是标准的 POST enctype="multipart/form-data" 请求。您可以使用简单的表单非常简单地生成它们,或者您可以使用 cURL(我怀疑您已经这样做了),如下所示:

curl_setopt($channel, CURLOPT_POSTFIELDS, array("myfile" => "@/path/to/my/image.png"));

cURL 将自动完成其余的工作(转换您的内容类型并对其进行 mime-type )。

于 2013-04-10T14:57:24.053 回答