利用curl post方式上传文件

PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求

if (class_exists('CURLFile')) {
    $realPath=new CURLFile(realpath($filePath));
}else{
    $realPath='@'.realpath($filePath);//php < 5.6
}
$data['media']=$realPath;
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

不建议下面这种写法判断php版本

if (version_compare(phpversion(), '5.4.0') >= 0)

 


curl 获取 https 请求方法

1.需要curl获取第三方的API,对方的API是https方式的。之前使用curl能获取http请求,但今天获取https请求时,出现了错误提示.

2.解决方法,在curl请求时,加入

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

3.

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);// 从证书中检查SSL加密算法是否存在
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_TIMEOUT,30);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $orders = curl_exec($ch);