/**
* @param string $url 請求地址
* @param string $filePath 上傳文件的絕對路徑
* @param array $postParam 數據
* @return array|bool|string
*/
public function uploadFile($url, $filePath, $postParam)
{
if(version_compare(phpversion(),'5.5.0') >= 0 && class_exists('CURLFile')){
$file = new CURLFile(realpath($filePath));
}else{
$file = '@'.$filePath;
}
$data = ["file" => $file];
$param = array_merge($postParam, $data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec($ch);
if (curl_errno($ch) != 0)
return curl_error($ch);
curl_close($ch);
if (!$response)
return false;
return $response;
}
注意:PHP版本不一樣,支持的版本不同,所以要分情況寫明
示例:
$url = 'http://localhost/ComposeApi/file.php';
$file = 'C:/WWW/XXX/uploads/wx/thumb/20170609/3c40cd75a6e9d5c570fb662a098195ca.jpg';
$result = $this->uploadFile($url,$file,[]);
var_dump($result);