100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > PHP通过CURL上传图片(微信公众号上传素材)

PHP通过CURL上传图片(微信公众号上传素材)

时间:2022-12-04 11:35:20

相关推荐

PHP通过CURL上传图片(微信公众号上传素材)

这里以微信公众号素材管理为例。

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

传统上,PHP的cURL支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,供cURL读取上传。这与命令行直接调用cURL程序的语法是一致的:

$type = "image"; //声明上传的素材类型,这里为image$token = get_access_token();//调用接口需要获取token,这里使用一个封装好的调取access_token的函数$url = "https://api./cgi-bin/material/add_material?access_token=".$token."&type=".$type;//这里是请求地址,token和素材类型通过get方式传递$file_path = dirname(__FILE__)."/pro.jpg";//这里声明文件的路径,使用绝对路径$file_data = array('media' => '@'.$file_path);//传递的数组,方式一:使用'@'符号加上文件的绝对路径来指引文件。这种方式适合PHP5.5之前的版本,$file_data = array("media" => new \CURLFile($file_path));//传递的数组,方式二:从PHP5.5版本以后,引入了新的CURLFile 类来指向文件,参数传入的也是绝对路径$ch = curl_init();//初始化一个新的会话,返回一个cURL句柄,供curl_setopt(), curl_exec()和curl_close() 函数使用。curl_setopt($ch , CURLOPT_URL , $url);//需要获取的URL地址,也可以在curl_init()函数中设置。curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);//使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,//而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或truecurl_setopt($ch , CURLOPT_POST, 1);//发送一个POST请求curl_setopt($ch , CURLOPT_POSTFIELDS, $file_data);//传递一个关联数组,生成multipart/form-data的POST请求$output = curl_exec($ch);//发送请求获取结果curl_close($ch);//关闭会话return $output;//返回结果

返回结果:

{"media_id":"***","url":"http:***"}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。