这几天因为要调用java接口所以要传输文件 我选择了curl传文件,这边说一个坑,就是我在文件传输的时候用了原来的@后边直接加上文件绝对路径。
然而一直没有错误就感觉一直没有发送出去,后来我用了win下的试了一下,直接抛出警告说这个方法已经过时了,请用curlfile函数代替。到现在我才知道原来是自己的电脑一直没开警告报错,win下我一直开着的,这个问题纠结看好一段时间。
下面就上代码看看curl传输文件和数组数据,
$beforePath = '/Applications/MAMP/htdocs/photo/1.jpg';
$afterPath = '/Applications/MAMP/htdocs/photo/2.jpg';//绝对路径
$data = [
'top' => curl_file_create($beforePath),
'after' => curl_file_create($afterPath),
'partnerId' => $data['0']['uid'],
'mobile' => $data1['0']['phone'],
'email' => $data1['0']['email'],
'realName' => $data['0']['real_name'],
];
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //禁用证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_URL, $url);
$info= curl_exec($ch);
curl_close($ch);