想用到微信公眾平台的圖片識別系統,結果報錯{"errcode":41005,"errmsg":"media data missing hint: [xScHza03164711]"}"
代碼如下:
<?php
class getImgSecCheck{
function get_data(){
$url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESSTOKEN";
$post_data = array("media"=>"@D:\phpstudy\PHPTutorial\WWW\addAll.png");
//初始化
$curl = curl_init();
//設置抓取的url
curl_setopt ( $curl, CURLOPT_URL, $url );
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $curl, CURLOPT_CONNECTTIMEOUT, 5 );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $post_data );
//執行命令
$data = curl_exec($curl);
//關閉URL請求
var_dump($data);
curl_close($curl);
//顯示獲得的數據
}
}
$getImgSecCheck = new getImgSecCheck();
echo $getImgSecCheck->get_data();
這是因為php版本的不同,所導致的,在php5.5版本之前是可以用
$post_data = array("media"=>"@D:\phpstudy\PHPTutorial\WWW\addAll.png");
來規定文件路徑的,但是在php5.5之后就必須用到CURLFile 類;具體實現代碼如下:
<?php
class getImgSecCheck{
function get_data(){
$url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESSTOKEN";
$cfile = new CURLFile('D:\phpstudy\PHPTutorial\WWW\addAll.png','image/jpeg','test_name');
$post_data = array('name' => 'Foo',"file"=>$cfile);
//初始化
$curl = curl_init();
//設置抓取的url
curl_setopt ( $curl, CURLOPT_URL, $url );
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $curl, CURLOPT_CONNECTTIMEOUT, 5 );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $post_data );
//執行命令
$data = curl_exec($curl);
//關閉URL請求
var_dump($data);
curl_close($curl);
//顯示獲得的數據
}
}
$getImgSecCheck = new getImgSecCheck();
echo $getImgSecCheck->get_data();
————————————————
版權聲明:本文為CSDN博主「灰熊哦」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_39376608/article/details/88851810