Не передается файл в curl в php 5,6 - ошибка
В php версии 5.6 и выше в ранее сделанных скриптах с curl будет не выходить передача файлов если файл передается так:
$postdata = array(
'file' => "@".$file_path,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
В php с версии 5.6 передавать файл надо чуть подругому, с помощью класса CURLFile (в ранних версиях пхп этого класса нет - жаль что старый способ убрали в последующих версиях , приходится переделывать)
$postdata = array(
'file' => new CURLFile($file_path),
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
А можно так, чтобы всезде работал
$postdata = array();
if(class_exists('CURLFile')){
$postdata['file'] = new CURLFile($file_path);
}else{
$postdata['file'] = "@".$file_path;
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);