【发布时间】:2017-12-06 05:22:28
【问题描述】:
我想在PHP 中执行Curl 代码。
curl -X POST 'https://api.sightengine.com/1.0/check.json' \
-F 'api_user=1********5' \
-F 'api_secret=q**************Q' \
-F 'media=@/full/path/to/image.jpg' \
-F 'models=nudity'
上面的代码有四个参数要传递给api。下面是我尝试执行的 PHP 代码:
function image()
{
$body_data = http_build_query(array('api_user' => 1********5,
'api_secret' => 'q**************Q',
'media' => $_FILES['image']['name'],
'models' => 'nudity'));
// Configure cURL
$image_curl = curl_init();
curl_setopt($image_curl, CURLOPT_URL, "https://api.sightengine.com/1.0/check.json");
curl_setopt($image_curl, CURLOPT_POST, true); // Use POST
curl_setopt($image_curl, CURLOPT_POSTFIELDS, $body_data); // Setup post body
curl_setopt($image_curl, CURLOPT_RETURNTRANSFER, true); // Receive server response
// Execute request and read responce
$session_response = curl_exec($image_curl);
$response = json_decode($session_response);
print_r($response);
}
回应:
stdClass Object ( [status] => failure [request] => stdClass Object ( [id] => req_2365jHPuLcC6Bydh7WNd7 [timestamp] => 1512542730.57 [operations] => 0 ) [error] => stdClass Object ( [type] => argument_error [code] => 4 [message] => 没有指定媒体 ) )
现在问题出在media 和models 参数上。
我不确定
media参数的文件路径有问题。我是否想在路径前面加上一个额外的@。我在
$body_data数组中定义了所有参数,并将它们正确传递给CURLOPT_URL。
请帮我解决这个问题。当我在POSTMAN 中尝试此操作时,它工作正常。提前致谢。
【问题讨论】:
-
你见过这个吗? github.com/Sightengine/client-php - 没有 Guzzle 79 行代码..
-
我可以用它来上传图片吗?表示在它上传到服务器之前。
-
我是否只需要在我的工作项目中安装这个client-php。我实际上没有得到它。请帮我这样做。我在我的项目中使用 codeigniter 框架。