CURL模拟post上传图片到七牛云 curl方法如下 Url为post地址 dataArr则为post数据,数组形式,key=>value
public function getCurlData($Url=false,$dataArr=[]) { $postUrl = $Url === false ? $this->qiNiuUrl : $Url; $ch = curl_init($postUrl); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $dataArr); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $returnData = curl_exec($ch); return $returnData; }图片上传方法,将获得的qiniu uploadToken 与文件一起组成数组上传 注意文件curl中文件上传文件名前面需要加@符号。文件名为零时文件名即可。保存七牛云返回的key 拼接到对应bucket 的域名下 如www.domain.com/key即可访问到上传的图片
public function createAction() { $data = $this->input->post(null,true); $this->load->model('m_curl'); $qiNiuTokenArr = $this->m_curl->getCurlData(FALSE,['picNumber'=>3]); $uploadToken = json_decode($qiNiuTokenArr,true)['uploadToken']; $uploadData = ['token'=>$uploadToken,'file'=>'@'.$_FILES['activityPic']['tmp_name']]; $fileUploadRes = $this->m_curl->getCurlData($this->qiNiuUploadActivityUrl,$uploadData); print_r($fileUploadRes); }