php5.6中利用curl读取本地文件上传有了新方式,并且原来用@方式读取文件已经失效!
curl_setopt(ch, CURLOPT_POSTFIELDS, array( 'file' => '@/tmp/1.txt', ));
以上方式已经失效.
新的方式是
curl_setopt(ch, CURLOPT_POSTFIELDS, array( 'file' => new CURLFile('/tmp/1.txt'), ));
这种才可以,可以做以下兼容性处理.
if(PHP_VERSION>5.5 and class_exists('CURLFile')){ $file_fields['Filedata'] = new CURLFile(substr($file_fields['Filedata'], 1)); }